{
  "affected": [
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:12",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:13",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:14",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "details": "In the Linux kernel, the following vulnerability has been resolved:  ubifs: fix out-of-bounds read in signature length check  ubifs_sb_verify_signature() bounds the on-disk ubifs_sig_node-\u003elen field before handing the signature payload to verify_pkcs7_signature(), but the check has the wrong sign:  \tif (le32_to_cpu(signode-\u003elen) \u003e snod-\u003elen + sizeof(struct ubifs_sig_node))  The signature bytes start sizeof(struct ubifs_sig_node) (UBIFS_SIG_NODE_SZ, 64 bytes) into the node, so the payload is at most  \tsnod-\u003elen - sizeof(struct ubifs_sig_node)  bytes long. Adding the header size instead of subtracting it accepts a declared length up to 2 * UBIFS_SIG_NODE_SZ larger than the node actually holds -- past the end of c-\u003esbuf, which is vmalloc(c-\u003eleb_size). verify_pkcs7_signature() -\u003e pkcs7_parse_message() -\u003e asn1_ber_decoder() is then handed that inflated length and reads beyond the allocation while walking the DER headers. The node length comes straight from the mounted image, so a crafted signed UBIFS image reaches this via ubifs_read_superblock() before the signature is cryptographically checked.  snod-\u003elen is guaranteed to be \u003e= UBIFS_SIG_NODE_SZ by the node scanner (c-\u003eranges[UBIFS_SIG_NODE].min_len == UBIFS_SIG_NODE_SZ), so the corrected subtraction cannot underflow. Legitimately signed images are unaffected: a correct superblock never declares a signature longer than the node it is embedded in.",
  "id": "DEBIAN-CVE-2026-89720",
  "modified": "2026-09-12T08:47:22.139551901Z",
  "published": "2026-09-11T20:20:00.943Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://security-tracker.debian.org/tracker/CVE-2026-89720"
    }
  ],
  "upstream": [
    "CVE-2026-89720"
  ]
}