{"id":"CVE-2026-98636","kind":"vulnerability","aliases":["CVE-2026-98636"],"related":[],"title":"Linux kernel: squashfs mount with zero dictionary size shifts out of bounds","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nsquashfs: Add dictionary size range check to prevent shift-out-of-bounds\n\nWhen an abnormal SquashFS image (COMP_OPTS flag is 1 but dictionary size\nis 0) is mounted, and performs shift operations using dictionarysize, the\nshift exponent is -1, causing a shift-out-of-bounds.\n\nDetail as below:\nsquashfs_comp_opts(msblk, buffer, length)\n  squashfs_xz_comp_opts()\n    if (comp_opts)\n      n = ffs(opts->dict_size) - 1;<----opts->dict_size=0, n=-1\n      if (opts->dict_size != (1 << n) && opts->dict_size !=\n\t  \t(1 << n) + (1 << (n + 1))) <----shift-out-of-bounds\n\nFix it by adding a dictionary size range check before the shift operation.","summary":"A crafted SquashFS image with the compression options flag set but a dictionary size of zero makes the kernel compute a negative shift exponent when it is mounted. The result is an undefined-behavior shift-out-of-bounds in the kernel's squashfs XZ option parsing.","severity":"low","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["linux-kernel","runtime","self-hosted","squashfs"],"not_affected_if":["no-squashfs-mounts","trusted-images-only"],"how_to_check":"- Run `uname -r` and compare against the fixed kernel builds in the upstream stable advisory linked from NVD.\n- unknown","fix":"- Update the Linux kernel to a stable release that includes the squashfs dictionary size range check.\n- Until patched, avoid mounting untrusted SquashFS images.","status":"open","published_at":"2026-10-18T16:17:16+00:00","first_seen_at":"2026-10-23T21:57:16+00:00","triaged_at":"2026-10-25T05:21:00+00:00","updated_at":"2026-10-25T05:21:00+00:00","category":"runtime","confidence":0.6,"triage":{"at":"2026-10-25T05:21:00Z","model":"claude-haiku-5-5","output":{"fix":"- Update the Linux kernel to a stable release that includes the squashfs dictionary size range check.\n- Until patched, avoid mounting untrusted SquashFS images.","reach":"local","title":"Linux kernel: squashfs mount with zero dictionary size shifts out of bounds","impact":"low","summary":"A crafted SquashFS image with the compression options flag set but a dictionary size of zero makes the kernel compute a negative shift exponent when it is mounted. The result is an undefined-behavior shift-out-of-bounds in the kernel's squashfs XZ option parsing.","category":"runtime","nicknames":[],"who_cares":["linux-kernel","squashfs","self-hosted"],"confidence":0.6,"needs_auth":"no","worst_case":"kernel undefined behavior triggered by a malicious image mount","analyst_note":"Check the NVD entry and upstream kernel stable commits for the affected and fixed kernel version ranges and the real crash or exploit impact.","how_to_check":"- Run `uname -r` and compare against the fixed kernel builds in the upstream stable advisory linked from NVD.\n- unknown","needs_analyst":true,"not_affected_if":["no-squashfs-mounts","trusted-images-only"],"who_is_affected":"Systems running a Linux kernel without the upstream fix that mount SquashFS images, most often when a user or service mounts images from an untrusted source. Systems that never mount SquashFS images, or that only mount trusted images built in-house, have little exposure. The sources do not give a kernel version range.","user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"low"},"cost_usd":0.00064,"input_tokens":3521,"output_tokens":576,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-1':125C,160C '-2026':14A,17A '-98636':15A,18A '0':112C,158C '1':107C,154C,165C,170C,172C,174C 'abnorm':100C 'add':86C,183C 'behavior':61B 'bound':12A,66B,97C,132C,179C 'buffer':140C 'caus':126C 'check':90C,188C 'comp':103C,137C,144C,147C 'compress':33B 'comput':46B 'craft':28B 'cve':13A,16A 'detail':133C 'dict':152C,156C,163C,168C 'dictionari':7A,39B,87C,109C,185C 'dictionarys':120C 'expon':50B,123C 'ffs':150C 'fix':180C 'flag':35B,105C 'follow':80C 'host':25B 'imag':30B,102C 'kernel':2A,21B,45B,69B,78C 'length':141C 'linux':1A,20B,77C 'linux-kernel':19B 'make':43B 'mount':4A,54B,114C 'msblk':139C 'n':149C,159C,166C,171C,173C 'negat':48B 'oper':118C,192C 'opt':104C,138C,145C,148C,151C,155C,162C,167C 'option':34B,73B 'pars':74B 'perform':116C 'prevent':92C 'rang':89C,187C 'resolv':84C 'result':56B 'runtim':22B 'self':24B 'self-host':23B 'set':36B 'shift':9A,49B,63B,94C,117C,122C,129C,176C,191C 'shift-out-of-bound':62B,93C,128C,175C 'size':8A,40B,88C,110C,153C,157C,164C,169C,186C 'squashf':3A,26B,29B,71B,85C,101C,136C,142C 'undefin':60B 'undefined-behavior':59B 'use':119C 'vulner':81C 'xz':72B,143C 'zero':6A,42B","nicknames":[],"mitigations":[],"who_affected":"Systems running a Linux kernel without the upstream fix that mount SquashFS images, most often when a user or service mounts images from an untrusted source. Systems that never mount SquashFS images, or that only mount trusted images built in-house, have little exposure. The sources do not give a kernel version range.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-18T16:17:16+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-98636","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98636","severity":null,"published_at":"2026-10-18T16:17:16+00:00","modified_at":"2026-10-19T10:19:27+00:00","first_seen_at":"2026-10-23T21:57:16+00:00","fetched_at":"2026-10-23T22:28:56+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}