Skip to content

Data quality issue with ALPINE-CVE-2018-18311 / -18312 (inverted version range, false positives) #5634

Description

@uluzox

Affected records

  • ALPINE-CVE-2018-18311
  • ALPINE-CVE-2018-18312

Problem

Both records carry an inverted version range on every Alpine branch:

"events": [ { "introduced": "5.28.0" }, { "fixed": "5.26.3-r0" } ]

The fixed version (5.26.3-r0) sorts below the introduced version (5.28.0), so the
range x >= 5.28.0 AND x < 5.26.3-r0 is unsatisfiable. Scanners drop the invalid fixed
event and flag all perl >= 5.28.0 as vulnerable — including current perl 5.42.2-r0
on Alpine v3.24 — for a 2018 CVE that was fixed in perl 5.26.3.

Source JSON:

Evidence the range is wrong

Alpine's own secdb records the fix at 5.26.3-r0, and the current branch ships 5.42.2-r0:

# https://secdb.alpinelinux.org/v3.24/main.json  (pkg: perl)
"secfixes": {
  "5.26.3-r0": ["CVE-2018-18311", "CVE-2018-18312", "CVE-2018-18313", "CVE-2018-18314"],
  ...
  "5.42.2-r0": [...]        # current version on v3.24
}

The advisory text itself states "Perl before 5.26.3 and 5.28.x before 5.28.1", so
perl 5.42.2 is not affected.

Suggested correction (all Alpine branches)

"events": [ { "introduced": "0" }, { "fixed": "5.26.3-r0" } ]

Likely root cause

The alpine converter (vulnfeeds/cmd/converters/alpine) appears to have taken introduced
from the NVD CPE range (5.28.x) instead of emitting introduced: 0 for a secfix-only
advisory, then paired it with the Alpine secfix 5.26.3-r0 — two different perl branches
(5.26.x vs 5.28.x) merged into one inverted range. The sibling records ALPINE-CVE-2018-18313
and ALPINE-CVE-2018-18314 share the same secfix line and are worth checking for the same
defect.

This is the same class of malformed-Alpine-range false positive as #4165.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions