Data quality issue with CVE-2021-27219 (ALPINE-CVE-2021-27219: inverted range on every Alpine branch)
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 42/100
Hướng nghiên cứu
Start with findIntroducedVersion in vulnfeeds/cmd/converters/alpine/main.go, which pairs the 2.67.0 CPE start with Alpine's 2.66.6-r0 fix without checking order. Read the linked #5634 and #5980 before changing anything, since the fix is already proposed there. Done means the converter emits introduced "0" when the start sorts after the fix, and the query for glib 2.88.1-r1 in Alpine:v3.24 returns {}.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
The CVE ID
https://osv.dev/vulnerability/ALPINE-CVE-2021-27219 (API: https://api.osv.dev/v1/vulns/ALPINE-CVE-2021-27219; source: https://storage.googleapis.com/cve-osv-conversion/alpine/ALPINE-CVE-2021-27219.json; modified 2026-10-23T17:17:56.165052798Z)
Describe the data quality issue observed
Every Alpine entry, from Alpine:v3.13 to Alpine:v3.24, carries the same inverted range. The Alpine:v3.24 entry is:
{"package": {"ecosystem": "Alpine:v3.24", "name": "glib", "purl": "pkg:apk/alpine/glib?arch=source"},
"ranges": [{"type": "ECOSYSTEM", "events": [{"introduced": "2.67.0"}, {"fixed": "2.66.6-r0"}]}]}
introduced (2.67.0) sorts above fixed (2.66.6-r0). So every glib from 2.67.0 upward is reported as affected and never fixed. That includes glib 2.88.1-r1, the current Alpine v3.24 build, and 2.90.0-r0, the current edge build. Versions that really are vulnerable, such as 2.66.5-r0, are reported as not affected.
Alpine's secdb has the fix in 2.66.6-r0 (https://secdb.alpinelinux.org/v3.24/main.json; edge is identical):
{"pkg": {"name": "glib", "secfixes": {"2.60.4-r0": ["CVE-2019-12450"], "2.62.5-r0": ["CVE-2020-6750"], "2.66.6-r0": ["CVE-2021-27219 GHSL-2021-045"], "2.80.1-r0": ["CVE-2024-34397"]}}}
NVD lists two separate vulnerable glib branches, "before 2.66.6" and "2.67.x before 2.67.3":
cpe:2.3:a:gnome:glib:*withversionEndExcluding: 2.66.6cpe:2.3:a:gnome:glib:*withversionStartIncluding: 2.67.0,versionEndExcluding: 2.67.3
Minimal reproduction
curl -sS https://api.osv.dev/v1/query -H 'Content-Type: application/json' \
--data '{"package":{"name":"glib","ecosystem":"Alpine:v3.24"},"version":"2.88.1-r1"}'
Observed on 2026-11-01: the response's vulns holds one record, ALPINE-CVE-2021-27219 (modified 2026-10-23T17:17:56.165052798Z).
The same query, with the version changed:
| version | ALPINE-CVE-2021-27219 returned | correct answer |
|---|---|---|
| 2.66.5-r0 | no | yes (before the fix) |
| 2.66.6-r0 | no | no |
| 2.67.3-r0 | yes | no |
| 2.88.1-r1 | yes | no |
| 2.90.0-r0 | yes | no |
Expected result: glib 2.88.1-r1 in Alpine:v3.24 does not match ALPINE-CVE-2021-27219. The response for that query is {}.
Actual result: it matches, because the range is unsatisfiable as written and is read as "affected from 2.67.0, never fixed".
Suggested changes to record
For every Alpine branch:
"ranges": [{"type": "ECOSYSTEM", "events": [{"introduced": "0"}, {"fixed": "2.66.6-r0"}]}]
Additional context
This is the converter defect described in #5634. findIntroducedVersion in vulnfeeds/cmd/converters/alpine/main.go returns the first NVD CPE match that has a VersionStartIncluding. It skips the "before 2.66.6" range, which has no start, so it takes 2.67.0 from the 2.67.x branch. It then pairs that with Alpine's fix on the 2.66.x branch, without checking that the introduced version sorts below the fixed one. The logic came in with #5586 (2026-07-05). The fix proposed in #5980 would also correct this record: use an introduced version only when it sorts before Alpine's fixed version, and otherwise fall back to "0".
- Ngôn ngữ chính
- Go
- Star
- 3k
- Fork
- 390
- Merge trung bình
- 1 ngày 1 giờ
- Pull request đã merge (30 ngày)
- 128
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của google/osv.dev
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
google/osv.dev#5824 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
worker to log more information for gitter internal server errorsCó thể làm lại được @ZedingZhang đã nhận 58 ngày trước và không có pull request nào đang mở. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
google/osv.dev#5809 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Create repo purls for GIT ecosystem rangesCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mởbacklog data quality
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
google/osv.dev#3807 · 5 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của google/osv.dev
Issue tương tự
-
fix(scan): validate and normalize output format in validate-contractCó thể đã có người làm @WKr1shna đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug good first issue help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
-
Won't Fix
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
microsoft/TypeScript#65107 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
argoproj/argo-workflows#17397 ·
Maintainer thường phản hồi trong vòng 1 ngày