β¬’ DragonFlyBSD Kernel Audit
← triage Β· dashboard
DF-2665

Vendored LZ4 is upstream r97 (2013) β€” 13 years of upstream hardening absent (cross-reference; upstream-owned history)

Field Value
ID DF-2665
Status new
Severity Info
CVSS 3.1 CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:N
CWE CWE-1104 Use of Unmaintained Third Party Components
File sys/vfs/hammer2/hammer2_lz4.c
Lines 372-517 (decoder = verbatim r97), encoder header r96-era
Area vfs
Confidence certain
Discovered 2026-08-29
Pass 2 (GLM 5.3 second pass)
Bucket hammer2
Reported pending
Known CVE CVE-2014-4610 (structurally unreachable: 32-bit only; sys/platform has only pc64/vkernel64)
CVE match variant

Summary

Version pinning: the decompressor in hammer2_lz4.c:372-517 is a verbatim logic copy of upstream LZ4 r97 (svn trunk@97, 2013-06-10 β€” imported for hammer2 the same day); the encoder header matches r96-era. Never re-synced. Missing upstream changes assessed for this tree: (1) CVE-2014-4610 fix (r118) β€” 32-bit only, structurally unreachable on DragonFly's LP64-only platforms; (2) r110+ empty-block special case and later bounded readers with explicit overflow detection β€” LP64 safety already provided by the existing margin discipline (fuzz-confirmed); (3) v1.9.4's srcSize==0 guard β€” the one fix that matters even on LP64, missing here (filed as DF-2664); (4) r116+ table reorganization β€” equivalent semantics on x86-64; (5) FAST_DEC_LOOP / streaming APIs β€” performance/features.

Threat

No incremental exposure on LP64 beyond DF-2664; forward-looking risk (future refactors or new callers inherit un-audited 2013 parsing code; any future 32-bit port would acquire CVE-2014-4610).

Re-vendor the current upstream lz4.c decompression core (v1.9.4+) or cherry-pick the two post-r97 safety guards (the inputSize==0 guard β€” already in DF-2664's fix.diff β€” and the literal/match-length overflow checks). Track upstream LZ4 advisories for the vendored copy as done for sys/contrib/.

Timeline

  • 2026-08-29 Recorded during pass-2 audit of hammer2_lz4.c (GLM 5.3).

Discussion (0)

No comments yet.