{"id":"CVE-2026-89720","revision":"cae5f49b5eec48638c89a75ca6c2d42f","records":[{"revision":"cae5f49b5eec48638c89a75ca6c2d42f","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-89720","aliases":[],"title":"ubifs: fix out-of-bounds read in signature length check","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nubifs: fix out-of-bounds read in signature length check\n\nubifs_sb_verify_signature() bounds the on-disk ubifs_sig_node->len field\nbefore handing the signature payload to verify_pkcs7_signature(), but the\ncheck has the wrong sign:\n\n\tif (le32_to_cpu(signode->len) > snod->len + sizeof(struct ubifs_sig_node))\n\nThe signature bytes start sizeof(struct ubifs_sig_node) (UBIFS_SIG_NODE_SZ,\n64 bytes) into the node, so the payload is at most\n\n\tsnod->len - sizeof(struct ubifs_sig_node)\n\nbytes long. Adding the header size instead of subtracting it accepts a\ndeclared length up to 2 * UBIFS_SIG_NODE_SZ larger than the node actually\nholds -- past the end of c->sbuf, which is vmalloc(c->leb_size).\nverify_pkcs7_signature() -> pkcs7_parse_message() -> asn1_ber_decoder()\nis then handed that inflated length and reads beyond the allocation while\nwalking the DER headers. The node length comes straight from the mounted\nimage, so a crafted signed UBIFS image reaches this via\nubifs_read_superblock() before the signature is cryptographically checked.\n\nsnod->len is guaranteed to be >= UBIFS_SIG_NODE_SZ by the node scanner\n(c->ranges[UBIFS_SIG_NODE].min_len == UBIFS_SIG_NODE_SZ), so the corrected\nsubtraction cannot underflow. Legitimately signed images are unaffected: a\ncorrect superblock never declares a signature longer than the node it is\nembedded in.","state":0,"publishedAt":"2026-09-11T19:46:32.923+00:00","modifiedAt":"2026-10-19T08:51:33.033+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"fs/ubifs/auth.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"817aa094842dfc3a6b98c9582d4a647827f66201\",\n                            \"lessThan\": \"ab7405bd86331cc2dbc8201699d4adc33bea75e7\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"817aa094842dfc3a6b98c9582d4a647827f66201\",\n                            \"lessThan\": \"11abc34698cb3172badf8aa12e623f1bac98bbd8\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"817aa094842dfc3a6b98c9582d4a647827f66201\",\n                            \"lessThan\": \"8cc3da72cf57acb4b77442ea8cec48425dff7c06\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"817aa094842dfc3a6b98c9582d4a647827f66201\",\n                            \"lessThan\": \"37a9d25a563f5f9103282954ce573c4a61321e7c\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"817aa094842dfc3a6b98c9582d4a647827f66201\",\n                            \"lessThan\": \"f76b79d6e42af20682495bccd22f72c7164b0018\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"817aa094842dfc3a6b98c9582d4a647827f66201\",\n                            \"lessThan\": \"a1dc246f98bb94233effa4fa3ec7bf84700bb7d1\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"817aa094842dfc3a6b98c9582d4a647827f66201\",\n                            \"lessThan\": \"83e1aa9f5f906c9b1f4949d0521f0f950a159d96\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"817aa094842dfc3a6b98c9582d4a647827f66201\",\n                            \"lessThan\": \"95d27c1708bb6e8823c8e7c623f9abc2a91bf4bf\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"fs/ubifs/auth.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"5.3\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"5.3\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.10.270\",\n                            \"lessThanOrEqual\": \"5.10.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.15.221\",\n                            \"lessThanOrEqual\": \"5.15.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.1.188\",\n                            \"lessThanOrEqual\": \"6.1.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.157\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.109\",\n                            \"lessThanOrEqual\": \"6.12.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18.50\",\n                            \"lessThanOrEqual\": \"6.18.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.2.4\",\n                            \"lessThanOrEqual\": \"7.2.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.3\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H","score":7.7,"severity":"HIGH"}],"references":["https://git.kernel.org/stable/c/ab7405bd86331cc2dbc8201699d4adc33bea75e7","https://git.kernel.org/stable/c/11abc34698cb3172badf8aa12e623f1bac98bbd8","https://git.kernel.org/stable/c/8cc3da72cf57acb4b77442ea8cec48425dff7c06","https://git.kernel.org/stable/c/37a9d25a563f5f9103282954ce573c4a61321e7c","https://git.kernel.org/stable/c/f76b79d6e42af20682495bccd22f72c7164b0018","https://git.kernel.org/stable/c/a1dc246f98bb94233effa4fa3ec7bf84700bb7d1","https://git.kernel.org/stable/c/83e1aa9f5f906c9b1f4949d0521f0f950a159d96","https://git.kernel.org/stable/c/95d27c1708bb6e8823c8e7c623f9abc2a91bf4bf"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-89720","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-89720","identifiers":["CVE-2026-89720"]},"retained":false,"historicalAffected":[]}],"coverage":[]}