Lucene search

K
vulnrichmentLinuxVULNRICHMENT:CVE-2024-26590
HistoryFeb 22, 2024 - 4:13 p.m.

CVE-2024-26590 erofs: fix inconsistent per-file compression format

2024-02-2216:13:34
Linux
github.com
3
linux kernel
erofs
compressionalgorithmexception
syzkaller
craftedimages
nullpointerdereference
bugfix

AI Score

6.7

Confidence

Low

SSVC

Exploitation

none

Automatable

no

Technical Impact

partial

In the Linux kernel, the following vulnerability has been resolved:

erofs: fix inconsistent per-file compression format

EROFS can select compression algorithms on a per-file basis, and each
per-file compression algorithm needs to be marked in the on-disk
superblock for initialization.

However, syzkaller can generate inconsistent crafted images that use
an unsupported algorithmtype for specific inodes, e.g. use MicroLZMA
algorithmtype even it’s not set in sbi->available_compr_algs. This
can lead to an unexpected “BUG: kernel NULL pointer dereference” if
the corresponding decompressor isn’t built-in.

Fix this by checking against sbi->available_compr_algs for each
m_algorithmformat request. Incorrect !erofs_sb_has_compr_cfgs preset
bitmap is now fixed together since it was harmless previously.

CNA Affected

[
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "8f89926290c4",
        "lessThan": "47467e04816c",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "8f89926290c4",
        "lessThan": "823ba1d21060",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "8f89926290c4",
        "lessThan": "eed24b816e50",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "8f89926290c4",
        "lessThan": "118a8cf504d7",
        "versionType": "git"
      }
    ],
    "programFiles": [
      "fs/erofs/decompressor.c",
      "fs/erofs/zmap.c"
    ],
    "defaultStatus": "unaffected"
  },
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "5.16"
      },
      {
        "status": "unaffected",
        "version": "0",
        "lessThan": "5.16",
        "versionType": "custom"
      },
      {
        "status": "unaffected",
        "version": "6.1.80",
        "versionType": "custom",
        "lessThanOrEqual": "6.1.*"
      },
      {
        "status": "unaffected",
        "version": "6.6.14",
        "versionType": "custom",
        "lessThanOrEqual": "6.6.*"
      },
      {
        "status": "unaffected",
        "version": "6.7.2",
        "versionType": "custom",
        "lessThanOrEqual": "6.7.*"
      },
      {
        "status": "unaffected",
        "version": "6.8",
        "versionType": "original_commit_for_fix",
        "lessThanOrEqual": "*"
      }
    ],
    "programFiles": [
      "fs/erofs/decompressor.c",
      "fs/erofs/zmap.c"
    ],
    "defaultStatus": "affected"
  }
]

AI Score

6.7

Confidence

Low

SSVC

Exploitation

none

Automatable

no

Technical Impact

partial