{"api_version":"1","generated_at":"2026-08-24T06:03:02+00:00","cve":"CVE-2026-72155","urls":{"html":"https://cve.report/CVE-2026-72155","api":"https://cve.report/api/cve/CVE-2026-72155.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-72155","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-72155"},"summary":{"title":"mtd: spi-nor: swp: Improve locking user experience","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nmtd: spi-nor: swp: Improve locking user experience\n\nIn the case of the first block being locked (or the few first blocks),\nif the user want to fully unlock the device it has two possibilities:\n- either it asks to unlock the entire device, and this works;\n- or it asks to unlock just the block(s) that are currently locked,\n  which fails.\n\nIt fails because the conditions \"can_be_top\" and \"can_be_bottom\" are\ntrue. Indeed, in this case, we unlock everything, so the TB bit does not\nmatter. However in the current implementation, use_top would be true (as\nthis is the favourite option) and lock_len, which in practice should be\nreduced down to 0, is set to \"nor->params->size - (ofs + len)\" which is\na positive number. This is wrong.\n\nAn easy way is to simply add an extra condition. In the unlock() path,\nif we can achieve the same result from both sides, it means we unlock\neverything and lock_len must simply be 0. A comment is added to clarify\nthat logic.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-08-15 06:21:33","updated_at":"2026-08-23 13:16:40"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/23c285be8f6fcde9088fe12bb69c701d46696be1","name":"https://git.kernel.org/stable/c/23c285be8f6fcde9088fe12bb69c701d46696be1","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/e1d456b26bf23e30db305a6184e8abd9ab68bbf2","name":"https://git.kernel.org/stable/c/e1d456b26bf23e30db305a6184e8abd9ab68bbf2","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/9a0d8dec3d11ca95d67537ea8fa6ee2730a5038a","name":"https://git.kernel.org/stable/c/9a0d8dec3d11ca95d67537ea8fa6ee2730a5038a","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/c0806df5cf806545160f3fdac3c888926ceac557","name":"https://git.kernel.org/stable/c/c0806df5cf806545160f3fdac3c888926ceac557","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/a6fd2145c73b80bb6a5eed7355a4f63597d712d9","name":"https://git.kernel.org/stable/c/a6fd2145c73b80bb6a5eed7355a4f63597d712d9","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/12d4d69221159e6d0e72400ec81195d691169b53","name":"https://git.kernel.org/stable/c/12d4d69221159e6d0e72400ec81195d691169b53","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/6110ab5ffd84e8daa654652446a03ce2f77580a7","name":"https://git.kernel.org/stable/c/6110ab5ffd84e8daa654652446a03ce2f77580a7","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/dc341272cf8e15a2c511db3c4df5dab8adf70ad0","name":"https://git.kernel.org/stable/c/dc341272cf8e15a2c511db3c4df5dab8adf70ad0","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-72155","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-72155","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 3dd8012a8eeb3702fa17450ec1a16a3f38af138d 23c285be8f6fcde9088fe12bb69c701d46696be1 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 3dd8012a8eeb3702fa17450ec1a16a3f38af138d a6fd2145c73b80bb6a5eed7355a4f63597d712d9 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 3dd8012a8eeb3702fa17450ec1a16a3f38af138d 9a0d8dec3d11ca95d67537ea8fa6ee2730a5038a git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 3dd8012a8eeb3702fa17450ec1a16a3f38af138d dc341272cf8e15a2c511db3c4df5dab8adf70ad0 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 3dd8012a8eeb3702fa17450ec1a16a3f38af138d 6110ab5ffd84e8daa654652446a03ce2f77580a7 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 3dd8012a8eeb3702fa17450ec1a16a3f38af138d c0806df5cf806545160f3fdac3c888926ceac557 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 3dd8012a8eeb3702fa17450ec1a16a3f38af138d 12d4d69221159e6d0e72400ec81195d691169b53 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 3dd8012a8eeb3702fa17450ec1a16a3f38af138d e1d456b26bf23e30db305a6184e8abd9ab68bbf2 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 4.6","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 4.6 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.10.266 5.10.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.15.217 5.15.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.1.178 6.1.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.6.145 6.6.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.97 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.40 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.1.5 7.1.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"72155","cve":"CVE-2026-72155","epss":"0.002060000","percentile":"0.109170000","score_date":"2026-08-23","updated_at":"2026-08-24 00:11:15"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["drivers/mtd/spi-nor/swp.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"23c285be8f6fcde9088fe12bb69c701d46696be1","status":"affected","version":"3dd8012a8eeb3702fa17450ec1a16a3f38af138d","versionType":"git"},{"lessThan":"a6fd2145c73b80bb6a5eed7355a4f63597d712d9","status":"affected","version":"3dd8012a8eeb3702fa17450ec1a16a3f38af138d","versionType":"git"},{"lessThan":"9a0d8dec3d11ca95d67537ea8fa6ee2730a5038a","status":"affected","version":"3dd8012a8eeb3702fa17450ec1a16a3f38af138d","versionType":"git"},{"lessThan":"dc341272cf8e15a2c511db3c4df5dab8adf70ad0","status":"affected","version":"3dd8012a8eeb3702fa17450ec1a16a3f38af138d","versionType":"git"},{"lessThan":"6110ab5ffd84e8daa654652446a03ce2f77580a7","status":"affected","version":"3dd8012a8eeb3702fa17450ec1a16a3f38af138d","versionType":"git"},{"lessThan":"c0806df5cf806545160f3fdac3c888926ceac557","status":"affected","version":"3dd8012a8eeb3702fa17450ec1a16a3f38af138d","versionType":"git"},{"lessThan":"12d4d69221159e6d0e72400ec81195d691169b53","status":"affected","version":"3dd8012a8eeb3702fa17450ec1a16a3f38af138d","versionType":"git"},{"lessThan":"e1d456b26bf23e30db305a6184e8abd9ab68bbf2","status":"affected","version":"3dd8012a8eeb3702fa17450ec1a16a3f38af138d","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["drivers/mtd/spi-nor/swp.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"4.6"},{"lessThan":"4.6","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"5.10.*","status":"unaffected","version":"5.10.266","versionType":"semver"},{"lessThanOrEqual":"5.15.*","status":"unaffected","version":"5.15.217","versionType":"semver"},{"lessThanOrEqual":"6.1.*","status":"unaffected","version":"6.1.178","versionType":"semver"},{"lessThanOrEqual":"6.6.*","status":"unaffected","version":"6.6.145","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.97","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.40","versionType":"semver"},{"lessThanOrEqual":"7.1.*","status":"unaffected","version":"7.1.5","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.2","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.10.266","versionStartIncluding":"4.6","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.15.217","versionStartIncluding":"4.6","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.1.178","versionStartIncluding":"4.6","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.6.145","versionStartIncluding":"4.6","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.97","versionStartIncluding":"4.6","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.40","versionStartIncluding":"4.6","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.1.5","versionStartIncluding":"4.6","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2","versionStartIncluding":"4.6","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nmtd: spi-nor: swp: Improve locking user experience\n\nIn the case of the first block being locked (or the few first blocks),\nif the user want to fully unlock the device it has two possibilities:\n- either it asks to unlock the entire device, and this works;\n- or it asks to unlock just the block(s) that are currently locked,\n  which fails.\n\nIt fails because the conditions \"can_be_top\" and \"can_be_bottom\" are\ntrue. Indeed, in this case, we unlock everything, so the TB bit does not\nmatter. However in the current implementation, use_top would be true (as\nthis is the favourite option) and lock_len, which in practice should be\nreduced down to 0, is set to \"nor->params->size - (ofs + len)\" which is\na positive number. This is wrong.\n\nAn easy way is to simply add an extra condition. In the unlock() path,\nif we can achieve the same result from both sides, it means we unlock\neverything and lock_len must simply be 0. A comment is added to clarify\nthat logic."}],"providerMetadata":{"dateUpdated":"2026-08-23T12:46:54.916Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/23c285be8f6fcde9088fe12bb69c701d46696be1"},{"url":"https://git.kernel.org/stable/c/a6fd2145c73b80bb6a5eed7355a4f63597d712d9"},{"url":"https://git.kernel.org/stable/c/9a0d8dec3d11ca95d67537ea8fa6ee2730a5038a"},{"url":"https://git.kernel.org/stable/c/dc341272cf8e15a2c511db3c4df5dab8adf70ad0"},{"url":"https://git.kernel.org/stable/c/6110ab5ffd84e8daa654652446a03ce2f77580a7"},{"url":"https://git.kernel.org/stable/c/c0806df5cf806545160f3fdac3c888926ceac557"},{"url":"https://git.kernel.org/stable/c/12d4d69221159e6d0e72400ec81195d691169b53"},{"url":"https://git.kernel.org/stable/c/e1d456b26bf23e30db305a6184e8abd9ab68bbf2"}],"title":"mtd: spi-nor: swp: Improve locking user experience","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-72155","datePublished":"2026-08-15T05:53:25.236Z","dateReserved":"2026-08-09T03:40:39.909Z","dateUpdated":"2026-08-23T12:46:54.916Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-08-15 06:21:33","lastModifiedDate":"2026-08-23 13:16:40","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"72155","Ordinal":"1","Title":"mtd: spi-nor: swp: Improve locking user experience","CVE":"CVE-2026-72155","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"72155","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nmtd: spi-nor: swp: Improve locking user experience\n\nIn the case of the first block being locked (or the few first blocks),\nif the user want to fully unlock the device it has two possibilities:\n- either it asks to unlock the entire device, and this works;\n- or it asks to unlock just the block(s) that are currently locked,\n  which fails.\n\nIt fails because the conditions \"can_be_top\" and \"can_be_bottom\" are\ntrue. Indeed, in this case, we unlock everything, so the TB bit does not\nmatter. However in the current implementation, use_top would be true (as\nthis is the favourite option) and lock_len, which in practice should be\nreduced down to 0, is set to \"nor->params->size - (ofs + len)\" which is\na positive number. This is wrong.\n\nAn easy way is to simply add an extra condition. In the unlock() path,\nif we can achieve the same result from both sides, it means we unlock\neverything and lock_len must simply be 0. A comment is added to clarify\nthat logic.","Type":"Description","Title":"mtd: spi-nor: swp: Improve locking user experience"}]}}}