release v0.9.4: drift unblock, fragnesia range fix, infra docs
release / build (arm64) (push) Waiting to run
release / build (x86_64) (push) Waiting to run
release / build (x86_64-static / musl) (push) Waiting to run
release / build (arm64-static / musl) (push) Waiting to run
release / release (push) Blocked by required conditions
release / build (arm64) (push) Waiting to run
release / build (x86_64) (push) Waiting to run
release / build (x86_64-static / musl) (push) Waiting to run
release / build (arm64-static / musl) (push) Waiting to run
release / release (push) Blocked by required conditions
- Sync docs/CVE_METADATA.json + KEV_CROSSREF.md to match the
hand-applied core/cve_metadata.c entries from v0.9.3. Nightly
drift-check (red since 2026-05-25) now passes. Pintheft's CWE
landed as CWE-787 from NVD (was NULL in the hand-applied entry).
- Fix fragnesia (CVE-2026-46300) range table. Per NVD: bug entered
at 5.11 SKBFL_SHARED_FRAG, vulnerable through 5.15.207 / 6.1.173 /
6.6.140 / 6.12.90 / 6.18.32 / 7.0.9, fixed at .208/.174/.141/
.91/.33/.10. Prior table had one entry {7,0,9} — off-by-one and
missing every other backport. Added predates-5.11 introduction gate
+ test row.
- Update tools/verify-vm/README.md to document the v0.9.x infra:
mainline kernel pinning via kernel.ubuntu.com, per-module
provisioner hooks, two-phase prep→reboot→verify with post-reboot
kernel confirmation, GRUB_DEFAULT pinning.
- Add curl fallback for NVD lookups in refresh-cve-metadata.py.
Mirrors the CISA path's existing fallback. Prevents the silent
Python urlopen hang seen during v0.9.3 prep (55-min stuck on
CLOSE_WAIT socket; 30s timeout never fired).
This commit is contained in:
@@ -903,11 +903,25 @@ static int fg_active_probe(void)
|
||||
* - --active → empirical override (catches distro silent
|
||||
* backports and unfixed 7.0.x ≤ 7.0.8)
|
||||
*
|
||||
* Stable-branch backports for 5.10 / 6.1 / 6.12 — when they ship —
|
||||
* extend the table with the matching {major, minor, patch} entry.
|
||||
* Per NVD CVE-2026-46300 (queried 2026-05-28): SKBFL_SHARED_FRAG was
|
||||
* introduced at 5.11; the marker-propagation bug is present 5.11+. The
|
||||
* fix was backported across every active stable branch:
|
||||
*
|
||||
* 5.15-LTS: vulnerable 5.15.0–5.15.207, fixed 5.15.208+
|
||||
* 6.1-LTS: vulnerable 5.16.0–6.1.173, fixed 6.1.174+
|
||||
* 6.6-LTS: vulnerable 6.2.0–6.6.140, fixed 6.6.141+
|
||||
* 6.12-LTS: vulnerable 6.7.0–6.12.90, fixed 6.12.91+
|
||||
* 6.18-LTS: vulnerable 6.13.0–6.18.32, fixed 6.18.33+
|
||||
* 7.0: vulnerable 6.19.0–7.0.9, fixed 7.0.10+
|
||||
* 7.1-rcN: still vulnerable (rc1..rc4 at time of writing)
|
||||
*/
|
||||
static const struct kernel_patched_from fragnesia_patched_branches[] = {
|
||||
{7, 0, 9}, /* mainline + 7.0.x stable: fix lands at 7.0.9 */
|
||||
{5, 15, 208}, /* 5.15-LTS backport */
|
||||
{6, 1, 174}, /* 6.1-LTS backport */
|
||||
{6, 6, 141}, /* 6.6-LTS backport */
|
||||
{6, 12, 91}, /* 6.12-LTS backport */
|
||||
{6, 18, 33}, /* 6.18-LTS backport */
|
||||
{7, 0, 10}, /* 7.0 stable: fix lands at 7.0.10 */
|
||||
};
|
||||
static const struct kernel_range fragnesia_range = {
|
||||
.patched_from = fragnesia_patched_branches,
|
||||
@@ -930,6 +944,17 @@ static skeletonkey_result_t fg_detect(const struct skeletonkey_ctx *ctx)
|
||||
return SKELETONKEY_TEST_ERROR;
|
||||
}
|
||||
|
||||
/* Predates the bug: SKBFL_SHARED_FRAG marker only exists from 5.11
|
||||
* onwards; older kernels don't have the buggy skb_try_coalesce()
|
||||
* code path. */
|
||||
if (!skeletonkey_host_kernel_at_least(ctx->host, 5, 11, 0)) {
|
||||
if (!ctx->json)
|
||||
fprintf(stderr, "[i] fragnesia: kernel %s predates the "
|
||||
"SKBFL_SHARED_FRAG marker added in 5.11 — not "
|
||||
"applicable\n", v->release);
|
||||
return SKELETONKEY_OK;
|
||||
}
|
||||
|
||||
if (!ctx->host->unprivileged_userns_allowed) {
|
||||
if (!ctx->json)
|
||||
fprintf(stderr, "[i] fragnesia: unprivileged user "
|
||||
|
||||
Reference in New Issue
Block a user