{
  "affected": [
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:12",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "6.1.170-1"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:13",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "6.12.85-1"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:14",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "6.19.11-1"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "details": "In the Linux kernel, the following vulnerability has been resolved:  module: Fix kernel panic when a symbol st_shndx is out of bounds  The module loader doesn't check for bounds of the ELF section index in simplify_symbols():         for (i = 1; i \u003c symsec-\u003esh_size / sizeof(Elf_Sym); i++) { \t\tconst char *name = info-\u003estrtab + sym[i].st_name;  \t\tswitch (sym[i].st_shndx) { \t\tcase SHN_COMMON:  \t\t[...]  \t\tdefault: \t\t\t/* Divert to percpu allocation if a percpu var. */ \t\t\tif (sym[i].st_shndx == info-\u003eindex.pcpu) \t\t\t\tsecbase = (unsigned long)mod_percpu(mod); \t\t\telse   /** HERE --\u003e **/\t\tsecbase = info-\u003esechdrs[sym[i].st_shndx].sh_addr; \t\t\tsym[i].st_value += secbase; \t\t\tbreak; \t\t} \t}  A symbol with an out-of-bounds st_shndx value, for example 0xffff (known as SHN_XINDEX or SHN_HIRESERVE), may cause a kernel panic:    BUG: unable to handle page fault for address: ...   RIP: 0010:simplify_symbols+0x2b2/0x480   ...   Kernel panic - not syncing: Fatal exception  This can happen when module ELF is legitimately using SHN_XINDEX or when it is corrupted.  Add a bounds check in simplify_symbols() to validate that st_shndx is within the valid range before using it.  This issue was discovered due to a bug in llvm-objcopy, see relevant discussion for details [1].  [1] https://lore.kernel.org/linux-modules/20251224005752.201911-1-ihor.solodrai@linux.dev/",
  "id": "DEBIAN-CVE-2026-31521",
  "modified": "2026-09-14T16:47:32.479914Z",
  "published": "2026-04-22T14:16:51.930Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://security-tracker.debian.org/tracker/CVE-2026-31521"
    }
  ],
  "severity": [
    {
      "score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
      "type": "CVSS_V3"
    }
  ],
  "upstream": [
    "CVE-2026-31521"
  ]
}