009: Magisk ship pack through US-S5-1 + US-S4 OpenSSH/Jelly/Gallery2.

Release-keys/AVB, CVE clean+hi batches, Yama/slabrand, Pro branding,
bundled apps, and AXP-class product surface docs/scripts.
This commit is contained in:
sunfish-admin committed 2026-10-05 10:42:00 +02:00
1 parent fd793b9471
commit deaaf42caa
129 files changed
+11769 -141

No files matched your search

@@ -0,0 +1,22 @@
# Stage1 build fixes (FR-017)
> **2026-09-26 audit:** The FORTIFY BUG stubs below are a historical link
> workaround, **not an accepted fix**. The latest ksync FORTIFY image fails
> boot according to the owner. Clang exclusion in Kconfig references an
> undefined CC_IS_CLANG symbol. See
> [the FORTIFY audit](../../../../docs/009-fortify-boot-audit-20260926.md)
> before reusing this workaround.
Applied on host `msm-4.14` when Stage1 Graphene/AH hit compile/link issues:
1. **slab 0014 misfuzz** — Graphene patch targeted `slab_equal_or_root`;
fuzz applied to `is_root_cache`. Reverted `is_root_cache` to `return true`.
LOS already has `slab_equal_or_root` → `s == p`.
2. **FORTIFY + Clang LTO (historical, invalid as ship fix)** —
`CONFIG_FORTIFY_SOURCE=y` caused modpost undefined `__read_overflow*` /
`__write_overflow` in qcacld/techpack. Temporary `BUG()` stubs were
added in `lib/string.c` to force a link; LAB then failed to boot.
**Do not reuse.** Real work: Clang FORTIFY port — see
`docs/009-fortify-clang-port.md` and `docs/009-fortify-boot-audit-20260926.md`.
See `docs/009-kernel-hardening-map.md`.
@@ -0,0 +1,83 @@
# 009 kernel hardening Stage 1 (FR-017)
**Source**: AXP `kernel_patches` @ `df3cab2155b3` (GrapheneOS / AndroidHardening
series in Divest-era layout).
**Base**: LOS `kernel/google/msm-4.14` @ `28f9290ae067` (`4.14.357-openela`).
**Map**: `docs/009-kernel-hardening-map.md`.
## Files
| File | Role |
|------|------|
| `stage1.list` | Ordered allowlist (30 patches) |
| `apply_stage1.sh` | Applies list onto a kernel tree |
## Host usage (`rom-dev01`)
```bash
# dry-run
bash vendor/sunfish-a16/patches/009-kernel-hardening/apply_stage1.sh \
/srv/rom/src/lineage/kernel/google/msm-4.14 --dry-run
# apply (dirties the lineage kernel checkout)
bash vendor/sunfish-a16/patches/009-kernel-hardening/apply_stage1.sh \
/srv/rom/src/lineage/kernel/google/msm-4.14
```
Optional: `AXP_KERNEL_PATCHES=/path/to/kernel_patches`.
After apply, flip `sunfish_defconfig` options that the new Kconfig allows
(at least `CONFIG_FORTIFY_SOURCE=y`); see map `KH-CFG`.
## Boot-OK pack (2026-09-28 LAB) — prefer for Magisk bacon
Stage1 Graphene alone historically hung at the Google logo on LOS23/Clang.
The pack that boots with Magisk-track `boot-make` is **combo4 + Clang FORTIFY**
(no Stage1 mega-pack):
```bash
# on a reset msm-4.14 @ 28f9290ae067:
bash vendor/sunfish-a16/patches/009-kernel-hardening/apply_combo4_fortify.sh \
/path/to/msm-4.14
```
That applies `fortify-clang/` (incl. nested `__underlying_strlen` fix) +
driver bounds + defconfig:
`FORTIFY_SOURCE`, `INIT_ON_*`, `SECURITY_DMESG_RESTRICT`,
`SLAB_FREELIST_HARDENED`. Bacon entrypoint:
`scripts/009-bacon-axp-combo4-fortify.sh`.
## Stage1 + combo4 (full bacon, Wi‑Fi coherent)
```bash
# reset msm-4.14 @ 28f9290ae067, then:
bash vendor/sunfish-a16/patches/009-kernel-hardening/apply_stage1_combo4.sh \
/path/to/msm-4.14
# bacon: scripts/009-bacon-axp-stage1-combo4.sh
```
Order: Stage1 (30) → slab BUILD-FIXES if needed → combo4+FORTIFY.
Ship via **sideload of the zip** (matching vendor/`wlan.ko`). Do not flash
only the new boot onto an old slot.
**LAB accepted 2026-09-29:** see `docs/009-gate-g-kernel-attribution.md`.
## GPS / location (FR-018 — do not regress)
Owner wants **precise, fast GPS** (stock LOS behaviour). **Never** apply AXP
location lockdown, SUPL/IMSI stripping that hurts TTFF, or extra location
caps vs LOS 23.2. Stage1 list, `cve-strict.list`, and denylist must stay
free of location-lockdown series (`KH-LOC` = skip). If a future CVE hunk
touches GNSS/GPS paths only for a real security fix, keep LOS-equivalent
behaviour and document; do not “harden location” as a side goal.
## Not in Stage 1 alone
- CVE mega — now staged via `apply_stage1_combo4_cve.sh` + `cve-strict.list`
(~503 AXP allowlist from 2026-09-18 strict pass; `cve-denylist.txt` skipped).
Bacon: `scripts/009-bacon-axp-stage1-combo4-cve.sh` (test-keys; after
boot-OK Stage1 pack). **Do not** flash `20260918*-axp-kh-cve/full`.
- LinuxIncrementals
- Failed probe patches (port later)
- Location lockdown (FR-018)
- Iodé kernel (no sunfish 4.14 fork found)
+51
View File
@@ -0,0 +1,51 @@
#!/bin/bash
# Apply the LAB-verified combo4 + Clang FORTIFY pack onto a clean msm-4.14 tree.
#
# Boot-OK on sunfish LAB 2026-09-28 (ksync combo4-fortify-fix). This is NOT
# the full Graphene Stage1 pack (Stage1 alone historically hung at Google logo).
#
# Usage: apply_combo4_fortify.sh <kernel-tree>
# Expects a virgin / reset tree (apply_fortify_clang.py is not idempotent).
set -e
K=${1:?kernel tree}
HERE=$(cd "$(dirname "$0")" && pwd)
FC="$HERE/fortify-clang"
test -d "$K/include/linux"
test -f "$FC/apply_fortify_clang.py"
test -f "$FC/0001-driver-bounds-rtac-fils.patch"
python3 "$FC/apply_fortify_clang.py" "$K"
patch -p1 --forward --batch -d "$K" < "$FC/0001-driver-bounds-rtac-fils.patch"
DEF="$K/arch/arm64/configs/sunfish_defconfig"
test -f "$DEF"
# Drop any prior toggles we manage, then enable the boot-OK set.
for k in \
FORTIFY_SOURCE \
INIT_ON_ALLOC_DEFAULT_ON \
INIT_ON_FREE_DEFAULT_ON \
SECURITY_DMESG_RESTRICT \
SLAB_FREELIST_HARDENED \
SLAB_HARDENED
do
sed -i "/CONFIG_${k}/d" "$DEF"
done
# Keep KernelSU off on this Magisk track.
sed -i '/CONFIG_KSU/d' "$DEF"
echo '# CONFIG_KSU is not set' >> "$DEF"
for k in \
CONFIG_FORTIFY_SOURCE \
CONFIG_INIT_ON_ALLOC_DEFAULT_ON \
CONFIG_INIT_ON_FREE_DEFAULT_ON \
CONFIG_SECURITY_DMESG_RESTRICT \
CONFIG_SLAB_FREELIST_HARDENED
do
echo "${k}=y" >> "$DEF"
done
echo "OK: combo4+FORTIFY applied on $K"
@@ -0,0 +1,164 @@
#!/usr/bin/env bash
# Apply AXP CVE allowlist onto msm-4.14 (after Stage1+combo4).
# Source: AXP kernel_patches + cve_checker strict list / bisect slices.
#
# Safety (2026-09-29 review):
# - Default: ABORT on first patch failure (no continue-with-partial-tree).
# - Keep *.rej / *.orig under CVE_REJECT_DIR (do not silently delete).
# - Treat large line-offsets / fuzz as WARN or FAIL (mis-apply risk).
# - Set CVE_STRICT_CONTINUE=1 only for forensic runs (explicit).
set -euo pipefail
KP="${AXP_KERNEL_PATCHES:-/srv/rom/references/axp/kernel_patches}"
KERNEL_DIR="${1:-/srv/rom/src/lineage/kernel/google/msm-4.14}"
HERE="$(cd "$(dirname "$0")" && pwd)"
LIST="${CVE_STRICT_LIST:-$HERE/cve-strict.list}"
DENY="${CVE_DENYLIST:-$HERE/cve-denylist.txt}"
LOG_DIR="${CVE_APPLY_LOG_DIR:-/srv/rom/artifacts/009-axp-los23-port/cve-stage}"
CONTINUE="${CVE_STRICT_CONTINUE:-0}"
# Reject apply if GNU patch reports fuzz >= this (0 = disable fuzz fail)
MAX_FUZZ="${CVE_MAX_FUZZ:-1}"
# Reject if any hunk offset abs(lines) >= this (0 = disable)
MAX_ABS_OFFSET="${CVE_MAX_ABS_OFFSET:-200}"
DRY_RUN=0
[[ "${2:-}" == "--dry-run" ]] && DRY_RUN=1
if [[ ! -d "$KERNEL_DIR/include/linux" ]]; then
echo "error: kernel dir missing: $KERNEL_DIR" >&2
exit 1
fi
if [[ ! -d "$KP" ]]; then
echo "error: AXP kernel_patches missing: $KP" >&2
exit 1
fi
if [[ ! -f "$LIST" ]]; then
echo "error: list missing: $LIST" >&2
exit 1
fi
mkdir -p "$LOG_DIR"
STAMP=$(date -u +%Y%m%dT%H%M%SZ)
LOG="$LOG_DIR/apply-cve-strict-${STAMP}.log"
FAIL_LIST="$LOG_DIR/apply-cve-strict-${STAMP}.fail.txt"
REJECT_DIR="${CVE_REJECT_DIR:-$LOG_DIR/rejects-${STAMP}}"
mkdir -p "$REJECT_DIR"
: >"$FAIL_LIST"
declare -A DENY_MAP=()
if [[ -f "$DENY" ]]; then
while IFS= read -r d || [[ -n "$d" ]]; do
[[ -z "$d" || "$d" =~ ^# ]] && continue
if [[ "$d" == *"/kernel_patches/"* ]]; then
DENY_MAP["${d##*/kernel_patches/}"]=1
else
DENY_MAP["$d"]=1
fi
done <"$DENY"
fi
ok=0
fail=0
skip=0
miss=0
quality_fail=0
echo "=== CVE strict apply kernel=$KERNEL_DIR dry_run=$DRY_RUN continue=$CONTINUE max_fuzz=$MAX_FUZZ max_abs_offset=$MAX_ABS_OFFSET ===" | tee "$LOG"
while IFS= read -r rel || [[ -n "$rel" ]]; do
[[ -z "$rel" || "$rel" =~ ^# ]] && continue
if [[ -n "${DENY_MAP[$rel]:-}" ]]; then
echo "SKIP_DENY $rel" | tee -a "$LOG"
skip=$((skip + 1))
continue
fi
p="$KP/$rel"
if [[ ! -f "$p" ]]; then
echo "MISS $rel" | tee -a "$LOG"
miss=$((miss + 1))
echo "$rel" >>"$FAIL_LIST"
if [[ "$CONTINUE" != "1" ]]; then
echo "error: missing patch (abort)" >&2
exit 1
fi
continue
fi
args=(-p1 --batch -d "$KERNEL_DIR" --forward --no-backup-if-mismatch)
if [[ "$DRY_RUN" -eq 1 ]]; then
args+=(--dry-run)
fi
patch_log=$(mktemp)
set +e
patch "${args[@]}" <"$p" >"$patch_log" 2>&1
prc=$?
set -e
cat "$patch_log" >>"$LOG"
# Quality: fuzz / large offsets even when exit 0
fuzz_max=0
abs_off_max=0
eval "$(python3 -c '
import re, sys
text = open(sys.argv[1], errors="replace").read()
fuzz = off = 0
for m in re.finditer(r"with fuzz (\d+)", text):
fuzz = max(fuzz, int(m.group(1)))
for m in re.finditer(r"\(offset ([+-]?\d+) lines\)", text):
off = max(off, abs(int(m.group(1))))
print(f"fuzz_max={fuzz}")
print(f"abs_off_max={off}")
' "$patch_log")"
rm -f "$patch_log"
qbad=0
if [[ "$MAX_FUZZ" -gt 0 && "$fuzz_max" -ge "$MAX_FUZZ" ]]; then
echo "QUALITY_FAIL fuzz=$fuzz_max>=$MAX_FUZZ $rel" | tee -a "$LOG"
qbad=1
fi
if [[ "$MAX_ABS_OFFSET" -gt 0 && "$abs_off_max" -ge "$MAX_ABS_OFFSET" ]]; then
echo "QUALITY_FAIL abs_offset=$abs_off_max>=$MAX_ABS_OFFSET $rel" | tee -a "$LOG"
qbad=1
fi
if [[ "$prc" -eq 0 && "$qbad" -eq 0 ]]; then
echo "OK $rel (fuzz_max=$fuzz_max abs_off_max=$abs_off_max)" | tee -a "$LOG"
ok=$((ok + 1))
continue
fi
# Failure path: preserve rejects
echo "FAIL $rel patch_rc=$prc fuzz_max=$fuzz_max abs_off_max=$abs_off_max" | tee -a "$LOG"
echo "$rel" >>"$FAIL_LIST"
fail=$((fail + 1))
[[ "$qbad" -eq 1 ]] && quality_fail=$((quality_fail + 1))
safe=$(echo "$rel" | tr '/' '_')
dest="$REJECT_DIR/$safe"
mkdir -p "$dest"
# move any rej/orig created under kernel tree
while IFS= read -r -d '' rej; do
mv "$rej" "$dest/" 2>/dev/null || cp -a "$rej" "$dest/" || true
done < <(find "$KERNEL_DIR" -name '*.rej' -print0 2>/dev/null)
while IFS= read -r -d '' orig; do
mv "$orig" "$dest/" 2>/dev/null || cp -a "$orig" "$dest/" || true
done < <(find "$KERNEL_DIR" -name '*.orig' -print0 2>/dev/null)
cp -a "$p" "$dest/patch" 2>/dev/null || true
echo "rejects_kept=$dest" | tee -a "$LOG"
if [[ "$CONTINUE" != "1" ]]; then
echo "error: abort on FAIL (set CVE_STRICT_CONTINUE=1 to keep going)" >&2
echo "CVE strict ABORT OK=$ok FAIL=$fail QUALITY_FAIL=$quality_fail SKIP_DENY=$skip MISS=$miss log=$LOG" | tee -a "$LOG"
exit 1
fi
done <"$LIST"
echo "CVE strict done OK=$ok FAIL=$fail QUALITY_FAIL=$quality_fail SKIP_DENY=$skip MISS=$miss dry_run=$DRY_RUN continue=$CONTINUE log=$LOG rejects=$REJECT_DIR" | tee -a "$LOG"
if [[ "$fail" -gt 0 && "$CONTINUE" != "1" ]]; then
exit 1
fi
if [[ "$ok" -eq 0 && "$DRY_RUN" -eq 0 ]]; then
echo "error: zero CVE patches applied" >&2
exit 1
fi
+49
View File
@@ -0,0 +1,49 @@
#!/usr/bin/env bash
# Apply FR-017 Stage 1 AXP Graphene/AH patches to LOS msm-4.14.
# Attribute: AXP kernel_patches (GrapheneOS / AndroidHardening series via Divest-era layout).
set -euo pipefail
KP="${AXP_KERNEL_PATCHES:-/srv/rom/references/axp/kernel_patches}"
KERNEL_DIR="${1:-/srv/rom/src/lineage/kernel/google/msm-4.14}"
LIST="$(cd "$(dirname "$0")" && pwd)/stage1.list"
DRY_RUN=0
if [[ "${2:-}" == "--dry-run" ]]; then
DRY_RUN=1
fi
if [[ ! -d "$KERNEL_DIR" ]]; then
echo "error: kernel dir missing: $KERNEL_DIR" >&2
exit 1
fi
if [[ ! -d "$KP" ]]; then
echo "error: AXP kernel_patches missing: $KP" >&2
exit 1
fi
ok=0
fail=0
while IFS= read -r rel || [[ -n "$rel" ]]; do
[[ -z "$rel" || "$rel" =~ ^# ]] && continue
p="$KP/$rel"
if [[ ! -f "$p" ]]; then
echo "FAIL missing $rel"
fail=$((fail + 1))
continue
fi
args=(-p1 --batch -d "$KERNEL_DIR")
if [[ "$DRY_RUN" -eq 1 ]]; then
args+=(--dry-run)
fi
if patch "${args[@]}" < "$p"; then
echo "OK $rel"
ok=$((ok + 1))
else
echo "FAIL $rel"
fail=$((fail + 1))
find "$KERNEL_DIR" -name '*.rej' -delete 2>/dev/null || true
find "$KERNEL_DIR" -name '*.orig' -delete 2>/dev/null || true
exit 1
fi
done < "$LIST"
echo "Stage1 done OK=$ok FAIL=$fail dry_run=$DRY_RUN"
+47
View File
@@ -0,0 +1,47 @@
#!/bin/bash
# Stage1 Graphene/AH (30 patches) + combo4 Clang FORTIFY pack on a clean msm-4.14.
#
# Order: Stage1 first (virgin tree), then apply_combo4_fortify.sh (Clang POS +
# nested __underlying_strlen + driver bounds + combo4 defconfig).
# Expects reset tree @ 28f9290ae067 (apply_fortify_clang.py is not idempotent).
#
# Full bacon with this pack ships matching vendor modules (Wi-Fi). Boot-only
# flash onto an older vendor can break wlan CRC — prefer sideload of the zip.
set -e
K=${1:?kernel tree}
HERE=$(cd "$(dirname "$0")" && pwd)
test -d "$K/include/linux"
test -x "$HERE/apply_stage1.sh" || chmod +x "$HERE/apply_stage1.sh"
test -x "$HERE/apply_combo4_fortify.sh" || chmod +x "$HERE/apply_combo4_fortify.sh"
bash "$HERE/apply_stage1.sh" "$K"
# Historical Stage1 slab/0014 misfuzz: if is_root_cache was corrupted, restore.
python3 - <<'PY' "$K"
from pathlib import Path
import sys
p = Path(sys.argv[1]) / "mm/slab.h"
t = p.read_text()
bad = """static inline bool is_root_cache(struct kmem_cache *s)
{
#ifdef CONFIG_SLAB_HARDENED
\treturn p == s;
#else
\treturn true;
#endif
}"""
good = """static inline bool is_root_cache(struct kmem_cache *s)
{
\treturn true;
}"""
if bad in t:
p.write_text(t.replace(bad, good, 1))
print("OK: reverted Stage1 slab/0014 misfuzz in is_root_cache")
else:
print("OK: is_root_cache looks unmisfuzzed (no BUILD-FIXES edit)")
PY
bash "$HERE/apply_combo4_fortify.sh" "$K"
echo "OK: Stage1 + combo4+FORTIFY applied on $K"
@@ -0,0 +1,12 @@
#!/bin/bash
# Stage1 + combo4+FORTIFY + AXP CVE strict allowlist on clean msm-4.14.
# Boot-OK baseline first (LAB 2026-09-29), then CVE mega that compiled 2026-09-18.
# FR-018: no location lockdown — keep GPS precise/fast (LOS defaults).
set -e
K=${1:?kernel tree}
HERE=$(cd "$(dirname "$0")" && pwd)
test -d "$K/include/linux"
bash "$HERE/apply_stage1_combo4.sh" "$K"
bash "$HERE/apply_cve_strict.sh" "$K"
echo "OK: Stage1 + combo4+FORTIFY + CVE-strict applied on $K (no location lockdown)"
@@ -0,0 +1,31 @@
#!/bin/bash
# US-S5-1 — enable remaining Graphene/AXP-class defconfig knobs on msm-4.14.
#
# Oracle: AXP/Graphene kernel hardening expects Yama + slab freelist random
# (combo4 already ships SLAB_FREELIST_HARDENED). LOS sunfish_defconfig left both
# off; CONFIG_LSM already lists yama but SECURITY_YAMA was unset so the LSM
# never built.
#
# Does NOT apply high-offset CVE leftovers (nf_tables deliberately skipped) or
# CVE-2022-49980 (denylist until lock-scope port).
#
# Usage: apply_uss5_1_defconfig.sh <kernel-tree>
set -euo pipefail
K=${1:?kernel tree}
DEF="$K/arch/arm64/configs/sunfish_defconfig"
test -f "$DEF"
test -f "$K/security/yama/Kconfig"
for k in SECURITY_YAMA SLAB_FREELIST_RANDOM; do
sed -i "/CONFIG_${k}/d" "$DEF"
# drop "# CONFIG_FOO is not set" lines too (sed above only matches CONFIG_FOO=)
sed -i "/# CONFIG_${k} is not set/d" "$DEF"
done
{
echo "CONFIG_SECURITY_YAMA=y"
echo "CONFIG_SLAB_FREELIST_RANDOM=y"
} >> "$DEF"
echo "OK: US-S5-1 defconfig (YAMA + SLAB_FREELIST_RANDOM) on $K"
@@ -0,0 +1 @@
CVE-2022-49980/ANY/0001.patch
@@ -0,0 +1,215 @@
0003-syzkaller-Misc/ANY/0008.patch
CVE-2015-7837/ANY/0001.patch
CVE-2016-3695/ANY/0001.patch
CVE-2017-5754/^4.19/0157.patch
CVE-2017-18232/4.14/0002.patch
CVE-2018-5897/ANY/0001.patch
CVE-2018-9415/ANY/0005.patch
CVE-2018-20855/^4.18/0001.patch
CVE-2019-3874/^5.1/0002.patch
CVE-2019-9444/ANY/0001.patch
CVE-2019-10520/ANY/0001.patch
CVE-2019-11191/^5.0/0001.patch
CVE-2019-12378/^5.1.5/0001.patch
CVE-2019-12455/^5.2/0001.patch
CVE-2019-12456/^5.1.5/0002.patch
CVE-2019-15291/4.14/0004.patch
CVE-2019-16921/^4.16/0001.patch
CVE-2019-18786/4.14/0002.patch
CVE-2019-19051/4.14/0008.patch
CVE-2019-19068/4.14/0002.patch
CVE-2019-19602/^5.4/0001.patch
CVE-2019-20908/^5.2/0001.patch
CVE-2020-0255/^5.6/0001.patch
CVE-2020-8832/^4.14/0001.patch
CVE-2020-15780/^5.8/0001.patch
CVE-2020-16119/^5.10/0002.patch
CVE-2020-BleedingToothExtras/^5.10/0001.patch
CVE-2021-3493/^5.10/0001.patch
CVE-2021-28039/^5.11/0001.patch
CVE-2021-28950/4.14/0002.patch
CVE-2021-29154/^5.12/0002.patch
CVE-2021-30337/4.14/0018.patch
CVE-2021-46912/^5.12/0001.patch
CVE-2021-46958/^5.12/0001.patch
CVE-2021-46999/^5.12/0001.patch
CVE-2021-47010/^5.12/0001.patch
CVE-2021-47058/^5.12/0001.patch
CVE-2021-47173/4.14/0003.patch
CVE-2021-47234/^5.13/0001.patch
CVE-2021-47266/^5.13/0001.patch
CVE-2021-47346/^5.13/0001.patch
CVE-2021-47430/^5.15/0001.patch
CVE-2021-47472/4.14/0003.patch
CVE-2021-47583/^5.15/0001.patch
CVE-2021-47616/^5.16/0001.patch
CVE-2021-47618/^5.16/0001.patch
CVE-2021-47636/ANY/0001.patch
CVE-2022-3061/^5.18/0001.patch
CVE-2022-3903/^6.0/0001.patch
CVE-2022-4382/^6.2/0001.patch
CVE-2022-21546/ANY/0001.patch
CVE-2022-27950/^5.16/0001.patch
CVE-2022-48674/^6.0/0001.patch
CVE-2022-48713/^5.17/0001.patch
CVE-2022-48781/^5.17/0001.patch
CVE-2022-48785/^5.17/0001.patch
CVE-2022-48966/4.14/0002.patch
CVE-2022-49034/ANY/0002.patch
CVE-2022-49061/4.14/0002.patch
CVE-2022-49073/ANY/0001.patch
CVE-2022-49078/ANY/0001.patch
CVE-2022-49146/ANY/0001.patch
CVE-2022-49194/ANY/0001.patch
CVE-2022-49205/ANY/0001.patch
CVE-2022-49209/ANY/0001.patch
CVE-2022-49285/ANY/0001.patch
CVE-2022-49318/ANY/0001.patch
CVE-2022-49363/ANY/0001.patch
CVE-2022-49364/ANY/0001.patch
CVE-2022-49380/ANY/0001.patch
CVE-2022-49425/ANY/0001.patch
CVE-2022-49428/ANY/0001.patch
CVE-2022-49433/ANY/0001.patch
CVE-2022-49500/ANY/0001.patch
CVE-2022-49513/ANY/0001.patch
CVE-2022-49563/ANY/0001.patch
CVE-2022-49564/ANY/0001.patch
CVE-2022-49566/ANY/0001.patch
CVE-2022-49642/ANY/0001.patch
CVE-2022-49705/ANY/0001.patch
CVE-2022-49710/ANY/0001.patch
CVE-2022-49777/ANY/0001.patch
CVE-2022-49779/ANY/0001.patch
CVE-2022-49784/ANY/0001.patch
CVE-2022-49823/ANY/0001.patch
CVE-2022-49824/ANY/0001.patch
CVE-2022-49825/ANY/0001.patch
CVE-2022-49839/ANY/0001.patch
CVE-2022-49863/ANY/0001.patch
CVE-2022-49980/ANY/0001.patch
CVE-2022-49990/ANY/0001.patch
CVE-2022-49993/4.14/0003.patch
CVE-2022-50013/ANY/0001.patch
CVE-2022-50062/ANY/0001.patch
CVE-2022-50074/ANY/0001.patch
CVE-2022-50248/ANY/0001.patch
CVE-2022-50273/ANY/0001.patch
CVE-2022-50326/ANY/0001.patch
CVE-2022-50358/ANY/0001.patch
CVE-2022-50364/ANY/0001.patch
CVE-2022-50397/ANY/0001.patch
CVE-2022-50473/ANY/0001.patch
CVE-2022-50522/4.14/0003.patch
CVE-2022-50537/ANY/0001.patch
CVE-2023-1989/4.14/0003.patch
CVE-2023-21657/4.14/0005.patch
CVE-2023-23000/^5.16/0001.patch
CVE-2023-28554/ANY/0002.patch
CVE-2023-33070/ANY/0001.patch
CVE-2023-52523/^6.6/0001.patch
CVE-2023-52595/^6.6/0001.patch
CVE-2023-52604/4.14/0009.patch
CVE-2023-52746/^6.2/0001.patch
CVE-2023-52884/^6.5/0001.patch
CVE-2023-52979/4.14/0003.patch
CVE-2023-53001/ANY/0001.patch
CVE-2023-53016/ANY/0001.patch
CVE-2023-53098/ANY/0001.patch
CVE-2023-53125/4.14/0003.patch
CVE-2023-53131/ANY/0001.patch
CVE-2023-53137/ANY/0001.patch
CVE-2023-53214/ANY/0001.patch
CVE-2023-53227/4.14/0003.patch
CVE-2023-53250/ANY/0001.patch
CVE-2023-53259/ANY/0002.patch
CVE-2023-53265/4.14/0003.patch
CVE-2023-53288/ANY/0001.patch
CVE-2023-53312/ANY/0001.patch
CVE-2023-53436/4.14/0003.patch
CVE-2023-53443/ANY/0001.patch
CVE-2023-53487/ANY/0002.patch
CVE-2023-53537/ANY/0001.patch
CVE-2023-53599/ANY/0001.patch
CVE-2023-53641/ANY/0001.patch
CVE-2023-53693/ANY/0001.patch
CVE-2023-53695/ANY/0001.patch
CVE-2023-53712/ANY/0001.patch
CVE-2023-53719/ANY/0001.patch
CVE-2024-26645/^6.8/0001.patch
CVE-2024-26720/4.14/0009.patch
CVE-2024-26760/^6.8/0001.patch
CVE-2024-26920/4.14/0009.patch
CVE-2024-26961/^6.7/0001.patch
CVE-2024-26972/^6.8/0001.patch
CVE-2024-27009/^6.9/0001.patch
CVE-2024-27033/^6.8/0001.patch
CVE-2024-27393/^6.9/0001.patch
CVE-2024-33032/ANY/0002.patch
CVE-2024-34027/^6.9/0001.patch
CVE-2024-35812/4.14/0009.patch
CVE-2024-35824/^6.8/0001.patch
CVE-2024-35879/^6.9/0001.patch
CVE-2024-35933/4.14/0008.patch
CVE-2024-35950/^6.9/0001.patch
CVE-2024-35954/^6.9/0001.patch
CVE-2024-35962/^6.9/0001.patch
CVE-2024-40996/^6.10/0001.patch
CVE-2024-41041/^6.10/0001.patch
CVE-2024-42077/^6.10/0001.patch
CVE-2024-42102/4.14/0009.patch
CVE-2024-42296/^6.10/0001.patch
CVE-2024-43894/^6.11/0001.patch
CVE-2024-44938/^6.9/0001.patch
CVE-2024-44939/^6.9/0001.patch
CVE-2024-44952/4.14/0008.patch
CVE-2024-46681/^6.11/0001.patch
CVE-2024-47747/^6.11/0001.patch
CVE-2024-50017/^6.11/0001.patch
CVE-2024-50019/^6.12/0001.patch
CVE-2024-50184/^6.11/0001.patch
CVE-2024-50195/3.17-^6.12/0001.patch
CVE-2024-50201/^6.12/0001.patch
CVE-2024-50210/3.17-^6.6/0001.patch
CVE-2024-50265/^6.12/0001.patch
CVE-2024-50267/^6.12/0001.patch
CVE-2024-50269/^6.12/0001.patch
CVE-2024-50279/^6.12/0001.patch
CVE-2024-50287/^6.12/0001.patch
CVE-2024-50290/^6.12/0001.patch
CVE-2024-50292/^6.12/0001.patch
CVE-2024-50295/^6.12/0001.patch
CVE-2024-50299/^6.12/0001.patch
CVE-2024-50301/^6.12/0001.patch
CVE-2024-52332/ANY/0002.patch
CVE-2024-53045/^6.12/0001.patch
CVE-2024-53101/^6.12/0001.patch
CVE-2024-53103/^6.12/0001.patch
CVE-2024-53112/^6.12/0001.patch
CVE-2024-53127/^6.12/0001.patch
CVE-2024-53140/^6.12/0001.patch
CVE-2024-53141/^6.12/0001.patch
CVE-2024-53156/ANY/0002.patch
CVE-2024-53157/ANY/0002.patch
CVE-2024-53165/ANY/0002.patch
CVE-2024-53171/ANY/0001.patch
CVE-2024-53172/ANY/0002.patch
CVE-2024-53183/ANY/0002.patch
CVE-2024-53190/ANY/0001.patch
CVE-2024-53194/ANY/0002.patch
CVE-2024-53214/ANY/0002.patch
CVE-2024-53227/ANY/0002.patch
CVE-2024-53239/ANY/0001.patch
CVE-2024-53680/ANY/0002.patch
CVE-2024-53690/ANY/0001.patch
CVE-2024-56531/ANY/0002.patch
CVE-2024-56532/ANY/0002.patch
CVE-2024-56536/ANY/0001.patch
CVE-2024-56539/ANY/0002.patch
CVE-2024-56548/ANY/0002.patch
CVE-2024-56570/ANY/0001.patch
CVE-2024-56586/ANY/0001.patch
CVE-2024-56587/ANY/0002.patch
CVE-2024-56593/ANY/0001.patch
CVE-2024-56595/ANY/0002.patch
CVE-2024-56597/ANY/0002.patch
@@ -0,0 +1,108 @@
0003-syzkaller-Misc/ANY/0008.patch
CVE-2015-7837/ANY/0001.patch
CVE-2016-3695/ANY/0001.patch
CVE-2017-5754/^4.19/0157.patch
CVE-2017-18232/4.14/0002.patch
CVE-2018-5897/ANY/0001.patch
CVE-2018-9415/ANY/0005.patch
CVE-2018-20855/^4.18/0001.patch
CVE-2019-3874/^5.1/0002.patch
CVE-2019-9444/ANY/0001.patch
CVE-2019-10520/ANY/0001.patch
CVE-2019-11191/^5.0/0001.patch
CVE-2019-12378/^5.1.5/0001.patch
CVE-2019-12455/^5.2/0001.patch
CVE-2019-12456/^5.1.5/0002.patch
CVE-2019-15291/4.14/0004.patch
CVE-2019-16921/^4.16/0001.patch
CVE-2019-18786/4.14/0002.patch
CVE-2019-19051/4.14/0008.patch
CVE-2019-19068/4.14/0002.patch
CVE-2019-19602/^5.4/0001.patch
CVE-2019-20908/^5.2/0001.patch
CVE-2020-0255/^5.6/0001.patch
CVE-2020-8832/^4.14/0001.patch
CVE-2020-15780/^5.8/0001.patch
CVE-2020-16119/^5.10/0002.patch
CVE-2020-BleedingToothExtras/^5.10/0001.patch
CVE-2021-3493/^5.10/0001.patch
CVE-2021-28039/^5.11/0001.patch
CVE-2021-28950/4.14/0002.patch
CVE-2021-29154/^5.12/0002.patch
CVE-2021-30337/4.14/0018.patch
CVE-2021-46912/^5.12/0001.patch
CVE-2021-46958/^5.12/0001.patch
CVE-2021-46999/^5.12/0001.patch
CVE-2021-47010/^5.12/0001.patch
CVE-2021-47058/^5.12/0001.patch
CVE-2021-47173/4.14/0003.patch
CVE-2021-47234/^5.13/0001.patch
CVE-2021-47266/^5.13/0001.patch
CVE-2021-47346/^5.13/0001.patch
CVE-2021-47430/^5.15/0001.patch
CVE-2021-47472/4.14/0003.patch
CVE-2021-47583/^5.15/0001.patch
CVE-2021-47616/^5.16/0001.patch
CVE-2021-47618/^5.16/0001.patch
CVE-2021-47636/ANY/0001.patch
CVE-2022-3061/^5.18/0001.patch
CVE-2022-3903/^6.0/0001.patch
CVE-2022-4382/^6.2/0001.patch
CVE-2022-21546/ANY/0001.patch
CVE-2022-27950/^5.16/0001.patch
CVE-2022-48674/^6.0/0001.patch
CVE-2022-48713/^5.17/0001.patch
CVE-2022-48781/^5.17/0001.patch
CVE-2022-48785/^5.17/0001.patch
CVE-2022-48966/4.14/0002.patch
CVE-2022-49034/ANY/0002.patch
CVE-2022-49061/4.14/0002.patch
CVE-2022-49073/ANY/0001.patch
CVE-2022-49078/ANY/0001.patch
CVE-2022-49146/ANY/0001.patch
CVE-2022-49194/ANY/0001.patch
CVE-2022-49205/ANY/0001.patch
CVE-2022-49209/ANY/0001.patch
CVE-2022-49285/ANY/0001.patch
CVE-2022-49318/ANY/0001.patch
CVE-2022-49363/ANY/0001.patch
CVE-2022-49364/ANY/0001.patch
CVE-2022-49380/ANY/0001.patch
CVE-2022-49425/ANY/0001.patch
CVE-2022-49428/ANY/0001.patch
CVE-2022-49433/ANY/0001.patch
CVE-2022-49500/ANY/0001.patch
CVE-2022-49513/ANY/0001.patch
CVE-2022-49563/ANY/0001.patch
CVE-2022-49564/ANY/0001.patch
CVE-2022-49566/ANY/0001.patch
CVE-2022-49642/ANY/0001.patch
CVE-2022-49705/ANY/0001.patch
CVE-2022-49710/ANY/0001.patch
CVE-2022-49777/ANY/0001.patch
CVE-2022-49779/ANY/0001.patch
CVE-2022-49784/ANY/0001.patch
CVE-2022-49823/ANY/0001.patch
CVE-2022-49824/ANY/0001.patch
CVE-2022-49825/ANY/0001.patch
CVE-2022-49839/ANY/0001.patch
CVE-2022-49863/ANY/0001.patch
CVE-2022-49980/ANY/0001.patch
CVE-2022-49990/ANY/0001.patch
CVE-2022-49993/4.14/0003.patch
CVE-2022-50013/ANY/0001.patch
CVE-2022-50062/ANY/0001.patch
CVE-2022-50074/ANY/0001.patch
CVE-2022-50248/ANY/0001.patch
CVE-2022-50273/ANY/0001.patch
CVE-2022-50326/ANY/0001.patch
CVE-2022-50358/ANY/0001.patch
CVE-2022-50364/ANY/0001.patch
CVE-2022-50397/ANY/0001.patch
CVE-2022-50473/ANY/0001.patch
CVE-2022-50522/4.14/0003.patch
CVE-2022-50537/ANY/0001.patch
CVE-2023-1989/4.14/0003.patch
CVE-2023-21657/4.14/0005.patch
CVE-2023-23000/^5.16/0001.patch
CVE-2023-28554/ANY/0002.patch
@@ -0,0 +1,54 @@
0003-syzkaller-Misc/ANY/0008.patch
CVE-2015-7837/ANY/0001.patch
CVE-2016-3695/ANY/0001.patch
CVE-2017-5754/^4.19/0157.patch
CVE-2017-18232/4.14/0002.patch
CVE-2018-5897/ANY/0001.patch
CVE-2018-9415/ANY/0005.patch
CVE-2018-20855/^4.18/0001.patch
CVE-2019-3874/^5.1/0002.patch
CVE-2019-9444/ANY/0001.patch
CVE-2019-10520/ANY/0001.patch
CVE-2019-11191/^5.0/0001.patch
CVE-2019-12378/^5.1.5/0001.patch
CVE-2019-12455/^5.2/0001.patch
CVE-2019-12456/^5.1.5/0002.patch
CVE-2019-15291/4.14/0004.patch
CVE-2019-16921/^4.16/0001.patch
CVE-2019-18786/4.14/0002.patch
CVE-2019-19051/4.14/0008.patch
CVE-2019-19068/4.14/0002.patch
CVE-2019-19602/^5.4/0001.patch
CVE-2019-20908/^5.2/0001.patch
CVE-2020-0255/^5.6/0001.patch
CVE-2020-8832/^4.14/0001.patch
CVE-2020-15780/^5.8/0001.patch
CVE-2020-16119/^5.10/0002.patch
CVE-2020-BleedingToothExtras/^5.10/0001.patch
CVE-2021-3493/^5.10/0001.patch
CVE-2021-28039/^5.11/0001.patch
CVE-2021-28950/4.14/0002.patch
CVE-2021-29154/^5.12/0002.patch
CVE-2021-30337/4.14/0018.patch
CVE-2021-46912/^5.12/0001.patch
CVE-2021-46958/^5.12/0001.patch
CVE-2021-46999/^5.12/0001.patch
CVE-2021-47010/^5.12/0001.patch
CVE-2021-47058/^5.12/0001.patch
CVE-2021-47173/4.14/0003.patch
CVE-2021-47234/^5.13/0001.patch
CVE-2021-47266/^5.13/0001.patch
CVE-2021-47346/^5.13/0001.patch
CVE-2021-47430/^5.15/0001.patch
CVE-2021-47472/4.14/0003.patch
CVE-2021-47583/^5.15/0001.patch
CVE-2021-47616/^5.16/0001.patch
CVE-2021-47618/^5.16/0001.patch
CVE-2021-47636/ANY/0001.patch
CVE-2022-3061/^5.18/0001.patch
CVE-2022-3903/^6.0/0001.patch
CVE-2022-4382/^6.2/0001.patch
CVE-2022-21546/ANY/0001.patch
CVE-2022-27950/^5.16/0001.patch
CVE-2022-48674/^6.0/0001.patch
CVE-2022-48713/^5.17/0001.patch
@@ -0,0 +1,54 @@
CVE-2022-48781/^5.17/0001.patch
CVE-2022-48785/^5.17/0001.patch
CVE-2022-48966/4.14/0002.patch
CVE-2022-49034/ANY/0002.patch
CVE-2022-49061/4.14/0002.patch
CVE-2022-49073/ANY/0001.patch
CVE-2022-49078/ANY/0001.patch
CVE-2022-49146/ANY/0001.patch
CVE-2022-49194/ANY/0001.patch
CVE-2022-49205/ANY/0001.patch
CVE-2022-49209/ANY/0001.patch
CVE-2022-49285/ANY/0001.patch
CVE-2022-49318/ANY/0001.patch
CVE-2022-49363/ANY/0001.patch
CVE-2022-49364/ANY/0001.patch
CVE-2022-49380/ANY/0001.patch
CVE-2022-49425/ANY/0001.patch
CVE-2022-49428/ANY/0001.patch
CVE-2022-49433/ANY/0001.patch
CVE-2022-49500/ANY/0001.patch
CVE-2022-49513/ANY/0001.patch
CVE-2022-49563/ANY/0001.patch
CVE-2022-49564/ANY/0001.patch
CVE-2022-49566/ANY/0001.patch
CVE-2022-49642/ANY/0001.patch
CVE-2022-49705/ANY/0001.patch
CVE-2022-49710/ANY/0001.patch
CVE-2022-49777/ANY/0001.patch
CVE-2022-49779/ANY/0001.patch
CVE-2022-49784/ANY/0001.patch
CVE-2022-49823/ANY/0001.patch
CVE-2022-49824/ANY/0001.patch
CVE-2022-49825/ANY/0001.patch
CVE-2022-49839/ANY/0001.patch
CVE-2022-49863/ANY/0001.patch
CVE-2022-49980/ANY/0001.patch
CVE-2022-49990/ANY/0001.patch
CVE-2022-49993/4.14/0003.patch
CVE-2022-50013/ANY/0001.patch
CVE-2022-50062/ANY/0001.patch
CVE-2022-50074/ANY/0001.patch
CVE-2022-50248/ANY/0001.patch
CVE-2022-50273/ANY/0001.patch
CVE-2022-50326/ANY/0001.patch
CVE-2022-50358/ANY/0001.patch
CVE-2022-50364/ANY/0001.patch
CVE-2022-50397/ANY/0001.patch
CVE-2022-50473/ANY/0001.patch
CVE-2022-50522/4.14/0003.patch
CVE-2022-50537/ANY/0001.patch
CVE-2023-1989/4.14/0003.patch
CVE-2023-21657/4.14/0005.patch
CVE-2023-23000/^5.16/0001.patch
CVE-2023-28554/ANY/0002.patch
@@ -0,0 +1,27 @@
CVE-2022-48781/^5.17/0001.patch
CVE-2022-48785/^5.17/0001.patch
CVE-2022-48966/4.14/0002.patch
CVE-2022-49034/ANY/0002.patch
CVE-2022-49061/4.14/0002.patch
CVE-2022-49073/ANY/0001.patch
CVE-2022-49078/ANY/0001.patch
CVE-2022-49146/ANY/0001.patch
CVE-2022-49194/ANY/0001.patch
CVE-2022-49205/ANY/0001.patch
CVE-2022-49209/ANY/0001.patch
CVE-2022-49285/ANY/0001.patch
CVE-2022-49318/ANY/0001.patch
CVE-2022-49363/ANY/0001.patch
CVE-2022-49364/ANY/0001.patch
CVE-2022-49380/ANY/0001.patch
CVE-2022-49425/ANY/0001.patch
CVE-2022-49428/ANY/0001.patch
CVE-2022-49433/ANY/0001.patch
CVE-2022-49500/ANY/0001.patch
CVE-2022-49513/ANY/0001.patch
CVE-2022-49563/ANY/0001.patch
CVE-2022-49564/ANY/0001.patch
CVE-2022-49566/ANY/0001.patch
CVE-2022-49642/ANY/0001.patch
CVE-2022-49705/ANY/0001.patch
CVE-2022-49710/ANY/0001.patch
@@ -0,0 +1,27 @@
CVE-2022-49777/ANY/0001.patch
CVE-2022-49779/ANY/0001.patch
CVE-2022-49784/ANY/0001.patch
CVE-2022-49823/ANY/0001.patch
CVE-2022-49824/ANY/0001.patch
CVE-2022-49825/ANY/0001.patch
CVE-2022-49839/ANY/0001.patch
CVE-2022-49863/ANY/0001.patch
CVE-2022-49980/ANY/0001.patch
CVE-2022-49990/ANY/0001.patch
CVE-2022-49993/4.14/0003.patch
CVE-2022-50013/ANY/0001.patch
CVE-2022-50062/ANY/0001.patch
CVE-2022-50074/ANY/0001.patch
CVE-2022-50248/ANY/0001.patch
CVE-2022-50273/ANY/0001.patch
CVE-2022-50326/ANY/0001.patch
CVE-2022-50358/ANY/0001.patch
CVE-2022-50364/ANY/0001.patch
CVE-2022-50397/ANY/0001.patch
CVE-2022-50473/ANY/0001.patch
CVE-2022-50522/4.14/0003.patch
CVE-2022-50537/ANY/0001.patch
CVE-2023-1989/4.14/0003.patch
CVE-2023-21657/4.14/0005.patch
CVE-2023-23000/^5.16/0001.patch
CVE-2023-28554/ANY/0002.patch
@@ -0,0 +1,14 @@
CVE-2022-49777/ANY/0001.patch
CVE-2022-49779/ANY/0001.patch
CVE-2022-49784/ANY/0001.patch
CVE-2022-49823/ANY/0001.patch
CVE-2022-49824/ANY/0001.patch
CVE-2022-49825/ANY/0001.patch
CVE-2022-49839/ANY/0001.patch
CVE-2022-49863/ANY/0001.patch
CVE-2022-49980/ANY/0001.patch
CVE-2022-49990/ANY/0001.patch
CVE-2022-49993/4.14/0003.patch
CVE-2022-50013/ANY/0001.patch
CVE-2022-50062/ANY/0001.patch
CVE-2022-50074/ANY/0001.patch
@@ -0,0 +1,7 @@
CVE-2022-49777/ANY/0001.patch
CVE-2022-49779/ANY/0001.patch
CVE-2022-49784/ANY/0001.patch
CVE-2022-49823/ANY/0001.patch
CVE-2022-49824/ANY/0001.patch
CVE-2022-49825/ANY/0001.patch
CVE-2022-49839/ANY/0001.patch
@@ -0,0 +1,6 @@
CVE-2022-49863/ANY/0001.patch
CVE-2022-49990/ANY/0001.patch
CVE-2022-49993/4.14/0003.patch
CVE-2022-50013/ANY/0001.patch
CVE-2022-50062/ANY/0001.patch
CVE-2022-50074/ANY/0001.patch
@@ -0,0 +1,7 @@
CVE-2022-49863/ANY/0001.patch
CVE-2022-49980/ANY/0001.patch
CVE-2022-49990/ANY/0001.patch
CVE-2022-49993/4.14/0003.patch
CVE-2022-50013/ANY/0001.patch
CVE-2022-50062/ANY/0001.patch
CVE-2022-50074/ANY/0001.patch
@@ -0,0 +1,13 @@
CVE-2022-50248/ANY/0001.patch
CVE-2022-50273/ANY/0001.patch
CVE-2022-50326/ANY/0001.patch
CVE-2022-50358/ANY/0001.patch
CVE-2022-50364/ANY/0001.patch
CVE-2022-50397/ANY/0001.patch
CVE-2022-50473/ANY/0001.patch
CVE-2022-50522/4.14/0003.patch
CVE-2022-50537/ANY/0001.patch
CVE-2023-1989/4.14/0003.patch
CVE-2023-21657/4.14/0005.patch
CVE-2023-23000/^5.16/0001.patch
CVE-2023-28554/ANY/0002.patch
@@ -0,0 +1,107 @@
CVE-2023-33070/ANY/0001.patch
CVE-2023-52523/^6.6/0001.patch
CVE-2023-52595/^6.6/0001.patch
CVE-2023-52604/4.14/0009.patch
CVE-2023-52746/^6.2/0001.patch
CVE-2023-52884/^6.5/0001.patch
CVE-2023-52979/4.14/0003.patch
CVE-2023-53001/ANY/0001.patch
CVE-2023-53016/ANY/0001.patch
CVE-2023-53098/ANY/0001.patch
CVE-2023-53125/4.14/0003.patch
CVE-2023-53131/ANY/0001.patch
CVE-2023-53137/ANY/0001.patch
CVE-2023-53214/ANY/0001.patch
CVE-2023-53227/4.14/0003.patch
CVE-2023-53250/ANY/0001.patch
CVE-2023-53259/ANY/0002.patch
CVE-2023-53265/4.14/0003.patch
CVE-2023-53288/ANY/0001.patch
CVE-2023-53312/ANY/0001.patch
CVE-2023-53436/4.14/0003.patch
CVE-2023-53443/ANY/0001.patch
CVE-2023-53487/ANY/0002.patch
CVE-2023-53537/ANY/0001.patch
CVE-2023-53599/ANY/0001.patch
CVE-2023-53641/ANY/0001.patch
CVE-2023-53693/ANY/0001.patch
CVE-2023-53695/ANY/0001.patch
CVE-2023-53712/ANY/0001.patch
CVE-2023-53719/ANY/0001.patch
CVE-2024-26645/^6.8/0001.patch
CVE-2024-26720/4.14/0009.patch
CVE-2024-26760/^6.8/0001.patch
CVE-2024-26920/4.14/0009.patch
CVE-2024-26961/^6.7/0001.patch
CVE-2024-26972/^6.8/0001.patch
CVE-2024-27009/^6.9/0001.patch
CVE-2024-27033/^6.8/0001.patch
CVE-2024-27393/^6.9/0001.patch
CVE-2024-33032/ANY/0002.patch
CVE-2024-34027/^6.9/0001.patch
CVE-2024-35812/4.14/0009.patch
CVE-2024-35824/^6.8/0001.patch
CVE-2024-35879/^6.9/0001.patch
CVE-2024-35933/4.14/0008.patch
CVE-2024-35950/^6.9/0001.patch
CVE-2024-35954/^6.9/0001.patch
CVE-2024-35962/^6.9/0001.patch
CVE-2024-40996/^6.10/0001.patch
CVE-2024-41041/^6.10/0001.patch
CVE-2024-42077/^6.10/0001.patch
CVE-2024-42102/4.14/0009.patch
CVE-2024-42296/^6.10/0001.patch
CVE-2024-43894/^6.11/0001.patch
CVE-2024-44938/^6.9/0001.patch
CVE-2024-44939/^6.9/0001.patch
CVE-2024-44952/4.14/0008.patch
CVE-2024-46681/^6.11/0001.patch
CVE-2024-47747/^6.11/0001.patch
CVE-2024-50017/^6.11/0001.patch
CVE-2024-50019/^6.12/0001.patch
CVE-2024-50184/^6.11/0001.patch
CVE-2024-50195/3.17-^6.12/0001.patch
CVE-2024-50201/^6.12/0001.patch
CVE-2024-50210/3.17-^6.6/0001.patch
CVE-2024-50265/^6.12/0001.patch
CVE-2024-50267/^6.12/0001.patch
CVE-2024-50269/^6.12/0001.patch
CVE-2024-50279/^6.12/0001.patch
CVE-2024-50287/^6.12/0001.patch
CVE-2024-50290/^6.12/0001.patch
CVE-2024-50292/^6.12/0001.patch
CVE-2024-50295/^6.12/0001.patch
CVE-2024-50299/^6.12/0001.patch
CVE-2024-50301/^6.12/0001.patch
CVE-2024-52332/ANY/0002.patch
CVE-2024-53045/^6.12/0001.patch
CVE-2024-53101/^6.12/0001.patch
CVE-2024-53103/^6.12/0001.patch
CVE-2024-53112/^6.12/0001.patch
CVE-2024-53127/^6.12/0001.patch
CVE-2024-53140/^6.12/0001.patch
CVE-2024-53141/^6.12/0001.patch
CVE-2024-53156/ANY/0002.patch
CVE-2024-53157/ANY/0002.patch
CVE-2024-53165/ANY/0002.patch
CVE-2024-53171/ANY/0001.patch
CVE-2024-53172/ANY/0002.patch
CVE-2024-53183/ANY/0002.patch
CVE-2024-53190/ANY/0001.patch
CVE-2024-53194/ANY/0002.patch
CVE-2024-53214/ANY/0002.patch
CVE-2024-53227/ANY/0002.patch
CVE-2024-53239/ANY/0001.patch
CVE-2024-53680/ANY/0002.patch
CVE-2024-53690/ANY/0001.patch
CVE-2024-56531/ANY/0002.patch
CVE-2024-56532/ANY/0002.patch
CVE-2024-56536/ANY/0001.patch
CVE-2024-56539/ANY/0002.patch
CVE-2024-56548/ANY/0002.patch
CVE-2024-56570/ANY/0001.patch
CVE-2024-56586/ANY/0001.patch
CVE-2024-56587/ANY/0002.patch
CVE-2024-56593/ANY/0001.patch
CVE-2024-56595/ANY/0002.patch
CVE-2024-56597/ANY/0002.patch
@@ -0,0 +1,215 @@
CVE-2024-56600/ANY/0001.patch
CVE-2024-56602/ANY/0001.patch
CVE-2024-56603/ANY/0002.patch
CVE-2024-56619/ANY/0002.patch
CVE-2024-56629/ANY/0001.patch
CVE-2024-56637/ANY/0002.patch
CVE-2024-56643/ANY/0002.patch
CVE-2024-56659/ANY/0002.patch
CVE-2024-56670/ANY/0002.patch
CVE-2024-56681/ANY/0001.patch
CVE-2024-56687/ANY/0001.patch
CVE-2024-56700/ANY/0002.patch
CVE-2024-56739/ANY/0002.patch
CVE-2024-56747/ANY/0001.patch
CVE-2024-56767/ANY/0002.patch
CVE-2024-56769/ANY/0002.patch
CVE-2024-57802/ANY/0002.patch
CVE-2024-57850/ANY/0002.patch
CVE-2024-57893/ANY/0001.patch
CVE-2024-57901/ANY/0001.patch
CVE-2024-57902/ANY/0001.patch
CVE-2024-57904/ANY/0001.patch
CVE-2024-57908/ANY/0001.patch
CVE-2024-57912/ANY/0001.patch
CVE-2024-57929/ANY/0001.patch
CVE-2024-57938/ANY/0002.patch
CVE-2024-57948/ANY/0001.patch
CVE-2024-57973/ANY/0001.patch
CVE-2024-58001/ANY/0001.patch
CVE-2024-58010/ANY/0001.patch
CVE-2024-58055/ANY/0001.patch
CVE-2024-58094/ANY/0001.patch
CVE-2024-58095/ANY/0001.patch
CVE-2025-21664/ANY/0001.patch
CVE-2025-21689/ANY/0001.patch
CVE-2025-21699/ANY/0001.patch
CVE-2025-21704/ANY/0001.patch
CVE-2025-21718/ANY/0001.patch
CVE-2025-21735/ANY/0001.patch
CVE-2025-21736/ANY/0001.patch
CVE-2025-21744/ANY/0001.patch
CVE-2025-21772/ANY/0001.patch
CVE-2025-21776/ANY/0001.patch
CVE-2025-21781/ANY/0001.patch
CVE-2025-21782/ANY/0001.patch
CVE-2025-21785/ANY/0001.patch
CVE-2025-21791/ANY/0001.patch
CVE-2025-21835/ANY/0001.patch
CVE-2025-21877/ANY/0001.patch
CVE-2025-21904/ANY/0001.patch
CVE-2025-21910/ANY/0001.patch
CVE-2025-21916/ANY/0001.patch
CVE-2025-21928/ANY/0001.patch
CVE-2025-21934/ANY/0001.patch
CVE-2025-21935/ANY/0001.patch
CVE-2025-21948/ANY/0001.patch
CVE-2025-21993/ANY/0001.patch
CVE-2025-21996/ANY/0001.patch
CVE-2025-22007/ANY/0001.patch
CVE-2025-22018/ANY/0001.patch
CVE-2025-22063/ANY/0001.patch
CVE-2025-22073/ANY/0001.patch
CVE-2025-22079/ANY/0001.patch
CVE-2025-22086/ANY/0001.patch
CVE-2025-23150/ANY/0001.patch
CVE-2025-23163/ANY/0001.patch
CVE-2025-37738/ANY/0001.patch
CVE-2025-37739/ANY/0001.patch
CVE-2025-37740/ANY/0001.patch
CVE-2025-37741/ANY/0001.patch
CVE-2025-37749/ANY/0001.patch
CVE-2025-37757/ANY/0001.patch
CVE-2025-37758/ANY/0001.patch
CVE-2025-37780/ANY/0001.patch
CVE-2025-37781/ANY/0001.patch
CVE-2025-37782/ANY/0001.patch
CVE-2025-37796/ANY/0001.patch
CVE-2025-37797/ANY/0001.patch
CVE-2025-37798/ANY/0001.patch
CVE-2025-37817/ANY/0001.patch
CVE-2025-37823/ANY/0001.patch
CVE-2025-37825/ANY/0001.patch
CVE-2025-37833/ANY/0001.patch
CVE-2025-37838/ANY/0001.patch
CVE-2025-37841/ANY/0001.patch
CVE-2025-37851/ANY/0001.patch
CVE-2025-37857/ANY/0001.patch
CVE-2025-37858/ANY/0001.patch
CVE-2025-37892/ANY/0001.patch
CVE-2025-37925/ANY/0001.patch
CVE-2025-37937/ANY/0002.patch
CVE-2025-37982/ANY/0001.patch
CVE-2025-37983/ANY/0001.patch
CVE-2025-37990/ANY/0001.patch
CVE-2025-38046/ANY/0001.patch
CVE-2025-38058/ANY/0001.patch
CVE-2025-38061/ANY/0001.patch
CVE-2025-38066/ANY/0001.patch
CVE-2025-38075/ANY/0001.patch
CVE-2025-38090/ANY/0001.patch
CVE-2025-38114/ANY/0001.patch
CVE-2025-38115/ANY/0001.patch
CVE-2025-38147/ANY/0001.patch
CVE-2025-38157/ANY/0001.patch
CVE-2025-38163/ANY/0001.patch
CVE-2025-38174/ANY/0001.patch
CVE-2025-38177/ANY/0001.patch
CVE-2025-38180/ANY/0001.patch
CVE-2025-38181/ANY/0001.patch
CVE-2025-38184/ANY/0001.patch
CVE-2025-38185/ANY/0001.patch
CVE-2025-38190/ANY/0001.patch
CVE-2025-38194/ANY/0001.patch
CVE-2025-38203/ANY/0001.patch
CVE-2025-38212/ANY/0001.patch
CVE-2025-38213/ANY/0001.patch
CVE-2025-38219/ANY/0001.patch
CVE-2025-38222/ANY/0001.patch
CVE-2025-38245/ANY/0001.patch
CVE-2025-38251/ANY/0001.patch
CVE-2025-38265/ANY/0001.patch
CVE-2025-38312/ANY/0001.patch
CVE-2025-38320/ANY/0001.patch
CVE-2025-38324/ANY/0001.patch
CVE-2025-38328/ANY/0001.patch
CVE-2025-38336/ANY/0001.patch
CVE-2025-38344/ANY/0001.patch
CVE-2025-38345/ANY/0001.patch
CVE-2025-38348/ANY/0001.patch
CVE-2025-38386/ANY/0001.patch
CVE-2025-38403/ANY/0001.patch
CVE-2025-38406/ANY/0001.patch
CVE-2025-38416/ANY/0001.patch
CVE-2025-38420/ANY/0001.patch
CVE-2025-38428/ANY/0001.patch
CVE-2025-38445/ANY/0001.patch
CVE-2025-38448/ANY/0001.patch
CVE-2025-38458/ANY/0001.patch
CVE-2025-38459/ANY/0001.patch
CVE-2025-38460/ANY/0001.patch
CVE-2025-38467/ANY/0001.patch
CVE-2025-38468/ANY/0001.patch
CVE-2025-38470/ANY/0001.patch
CVE-2025-38474/ANY/0001.patch
CVE-2025-38513/ANY/0001.patch
CVE-2025-38514/ANY/0001.patch
CVE-2025-38538/ANY/0001.patch
CVE-2025-38542/ANY/0001.patch
CVE-2025-38544/ANY/0001.patch
CVE-2025-38546/ANY/0001.patch
CVE-2025-38555/ANY/0001.patch
CVE-2025-38574/ANY/0001.patch
CVE-2025-38578/ANY/0001.patch
CVE-2025-38581/ANY/0001.patch
CVE-2025-38604/ANY/0001.patch
CVE-2025-38611/ANY/0001.patch
CVE-2025-38612/ANY/0001.patch
CVE-2025-38618/ANY/0001.patch
CVE-2025-38639/ANY/0001.patch
CVE-2025-38691/ANY/0001.patch
CVE-2025-38693/ANY/0001.patch
CVE-2025-38694/ANY/0001.patch
CVE-2025-38697/ANY/0001.patch
CVE-2025-38698/ANY/0001.patch
CVE-2025-38699/ANY/0001.patch
CVE-2025-38701/ANY/0001.patch
CVE-2025-38708/ANY/0001.patch
CVE-2025-38712/ANY/0001.patch
CVE-2025-38713/ANY/0001.patch
CVE-2025-38717/ANY/0001.patch
CVE-2025-39676/ANY/0001.patch
CVE-2025-39691/ANY/0001.patch
CVE-2025-39710/ANY/0001.patch
CVE-2025-39714/ANY/0001.patch
CVE-2025-39743/ANY/0001.patch
CVE-2025-39756/ANY/0001.patch
CVE-2025-39782/ANY/0001.patch
CVE-2025-39794/ANY/0001.patch
CVE-2025-39796/ANY/0001.patch
CVE-2025-39808/ANY/0001.patch
CVE-2025-39812/ANY/0001.patch
CVE-2025-39817/ANY/0001.patch
CVE-2025-39839/ANY/0001.patch
CVE-2025-39846/ANY/0001.patch
CVE-2025-39848/ANY/0001.patch
CVE-2025-39885/ANY/0001.patch
CVE-2025-39889/ANY/0001.patch
CVE-2025-39898/ANY/0001.patch
CVE-2025-39903/ANY/0001.patch
CVE-2025-39913/ANY/0001.patch
CVE-2025-39920/ANY/0001.patch
CVE-2025-39945/ANY/0001.patch
CVE-2025-39964/ANY/0001.patch
CVE-2025-39967/ANY/0001.patch
CVE-2025-39973/ANY/0001.patch
CVE-2025-39996/ANY/0001.patch
CVE-2025-40011/ANY/0001.patch
CVE-2025-40020/ANY/0001.patch
CVE-2025-40022/ANY/0001.patch
CVE-2025-40028/ANY/0001.patch
CVE-2025-40030/ANY/0001.patch
CVE-2025-40035/ANY/0001.patch
CVE-2025-40044/ANY/0001.patch
CVE-2025-40049/ANY/0001.patch
CVE-2025-40055/ANY/0001.patch
CVE-2025-40082/ANY/0001.patch
CVE-2019-12819/4.14/0006.patch
CVE-2021-47472/4.14/0003.patch
CVE-2023-53129/ANY/0001.patch
CVE-2023-53626/ANY/0001.patch
CVE-2024-26720/4.14/0009.patch
CVE-2024-39501/4.14/0009.patch
CVE-2024-42102/4.14/0009.patch
CVE-2024-50195/3.17-^6.12/0001.patch
CVE-2024-50210/3.17-^6.6/0001.patch
@@ -0,0 +1,429 @@
0003-syzkaller-Misc/ANY/0008.patch
CVE-2015-7837/ANY/0001.patch
CVE-2016-3695/ANY/0001.patch
CVE-2017-5754/^4.19/0157.patch
CVE-2017-18232/4.14/0002.patch
CVE-2018-5897/ANY/0001.patch
CVE-2018-9415/ANY/0005.patch
CVE-2018-20855/^4.18/0001.patch
CVE-2019-3874/^5.1/0002.patch
CVE-2019-9444/ANY/0001.patch
CVE-2019-10520/ANY/0001.patch
CVE-2019-11191/^5.0/0001.patch
CVE-2019-12378/^5.1.5/0001.patch
CVE-2019-12455/^5.2/0001.patch
CVE-2019-12456/^5.1.5/0002.patch
CVE-2019-15291/4.14/0004.patch
CVE-2019-16921/^4.16/0001.patch
CVE-2019-18786/4.14/0002.patch
CVE-2019-19051/4.14/0008.patch
CVE-2019-19068/4.14/0002.patch
CVE-2019-19602/^5.4/0001.patch
CVE-2019-20908/^5.2/0001.patch
CVE-2020-0255/^5.6/0001.patch
CVE-2020-8832/^4.14/0001.patch
CVE-2020-15780/^5.8/0001.patch
CVE-2020-16119/^5.10/0002.patch
CVE-2020-BleedingToothExtras/^5.10/0001.patch
CVE-2021-3493/^5.10/0001.patch
CVE-2021-28039/^5.11/0001.patch
CVE-2021-28950/4.14/0002.patch
CVE-2021-29154/^5.12/0002.patch
CVE-2021-30337/4.14/0018.patch
CVE-2021-46912/^5.12/0001.patch
CVE-2021-46958/^5.12/0001.patch
CVE-2021-46999/^5.12/0001.patch
CVE-2021-47010/^5.12/0001.patch
CVE-2021-47058/^5.12/0001.patch
CVE-2021-47173/4.14/0003.patch
CVE-2021-47234/^5.13/0001.patch
CVE-2021-47266/^5.13/0001.patch
CVE-2021-47346/^5.13/0001.patch
CVE-2021-47430/^5.15/0001.patch
CVE-2021-47472/4.14/0003.patch
CVE-2021-47583/^5.15/0001.patch
CVE-2021-47616/^5.16/0001.patch
CVE-2021-47618/^5.16/0001.patch
CVE-2021-47636/ANY/0001.patch
CVE-2022-3061/^5.18/0001.patch
CVE-2022-3903/^6.0/0001.patch
CVE-2022-4382/^6.2/0001.patch
CVE-2022-21546/ANY/0001.patch
CVE-2022-27950/^5.16/0001.patch
CVE-2022-48674/^6.0/0001.patch
CVE-2022-48713/^5.17/0001.patch
CVE-2022-48781/^5.17/0001.patch
CVE-2022-48785/^5.17/0001.patch
CVE-2022-48966/4.14/0002.patch
CVE-2022-49034/ANY/0002.patch
CVE-2022-49061/4.14/0002.patch
CVE-2022-49073/ANY/0001.patch
CVE-2022-49078/ANY/0001.patch
CVE-2022-49146/ANY/0001.patch
CVE-2022-49194/ANY/0001.patch
CVE-2022-49205/ANY/0001.patch
CVE-2022-49209/ANY/0001.patch
CVE-2022-49285/ANY/0001.patch
CVE-2022-49318/ANY/0001.patch
CVE-2022-49363/ANY/0001.patch
CVE-2022-49364/ANY/0001.patch
CVE-2022-49380/ANY/0001.patch
CVE-2022-49425/ANY/0001.patch
CVE-2022-49428/ANY/0001.patch
CVE-2022-49433/ANY/0001.patch
CVE-2022-49500/ANY/0001.patch
CVE-2022-49513/ANY/0001.patch
CVE-2022-49563/ANY/0001.patch
CVE-2022-49564/ANY/0001.patch
CVE-2022-49566/ANY/0001.patch
CVE-2022-49642/ANY/0001.patch
CVE-2022-49705/ANY/0001.patch
CVE-2022-49710/ANY/0001.patch
CVE-2022-49777/ANY/0001.patch
CVE-2022-49779/ANY/0001.patch
CVE-2022-49784/ANY/0001.patch
CVE-2022-49823/ANY/0001.patch
CVE-2022-49824/ANY/0001.patch
CVE-2022-49825/ANY/0001.patch
CVE-2022-49839/ANY/0001.patch
CVE-2022-49863/ANY/0001.patch
CVE-2022-49990/ANY/0001.patch
CVE-2022-49993/4.14/0003.patch
CVE-2022-50013/ANY/0001.patch
CVE-2022-50062/ANY/0001.patch
CVE-2022-50074/ANY/0001.patch
CVE-2022-50248/ANY/0001.patch
CVE-2022-50273/ANY/0001.patch
CVE-2022-50326/ANY/0001.patch
CVE-2022-50358/ANY/0001.patch
CVE-2022-50364/ANY/0001.patch
CVE-2022-50397/ANY/0001.patch
CVE-2022-50473/ANY/0001.patch
CVE-2022-50522/4.14/0003.patch
CVE-2022-50537/ANY/0001.patch
CVE-2023-1989/4.14/0003.patch
CVE-2023-21657/4.14/0005.patch
CVE-2023-23000/^5.16/0001.patch
CVE-2023-28554/ANY/0002.patch
CVE-2023-33070/ANY/0001.patch
CVE-2023-52523/^6.6/0001.patch
CVE-2023-52595/^6.6/0001.patch
CVE-2023-52604/4.14/0009.patch
CVE-2023-52746/^6.2/0001.patch
CVE-2023-52884/^6.5/0001.patch
CVE-2023-52979/4.14/0003.patch
CVE-2023-53001/ANY/0001.patch
CVE-2023-53016/ANY/0001.patch
CVE-2023-53098/ANY/0001.patch
CVE-2023-53125/4.14/0003.patch
CVE-2023-53131/ANY/0001.patch
CVE-2023-53137/ANY/0001.patch
CVE-2023-53214/ANY/0001.patch
CVE-2023-53227/4.14/0003.patch
CVE-2023-53250/ANY/0001.patch
CVE-2023-53259/ANY/0002.patch
CVE-2023-53265/4.14/0003.patch
CVE-2023-53288/ANY/0001.patch
CVE-2023-53312/ANY/0001.patch
CVE-2023-53436/4.14/0003.patch
CVE-2023-53443/ANY/0001.patch
CVE-2023-53487/ANY/0002.patch
CVE-2023-53537/ANY/0001.patch
CVE-2023-53599/ANY/0001.patch
CVE-2023-53641/ANY/0001.patch
CVE-2023-53693/ANY/0001.patch
CVE-2023-53695/ANY/0001.patch
CVE-2023-53712/ANY/0001.patch
CVE-2023-53719/ANY/0001.patch
CVE-2024-26645/^6.8/0001.patch
CVE-2024-26720/4.14/0009.patch
CVE-2024-26760/^6.8/0001.patch
CVE-2024-26920/4.14/0009.patch
CVE-2024-26961/^6.7/0001.patch
CVE-2024-26972/^6.8/0001.patch
CVE-2024-27009/^6.9/0001.patch
CVE-2024-27033/^6.8/0001.patch
CVE-2024-27393/^6.9/0001.patch
CVE-2024-33032/ANY/0002.patch
CVE-2024-34027/^6.9/0001.patch
CVE-2024-35812/4.14/0009.patch
CVE-2024-35824/^6.8/0001.patch
CVE-2024-35879/^6.9/0001.patch
CVE-2024-35933/4.14/0008.patch
CVE-2024-35950/^6.9/0001.patch
CVE-2024-35954/^6.9/0001.patch
CVE-2024-35962/^6.9/0001.patch
CVE-2024-40996/^6.10/0001.patch
CVE-2024-41041/^6.10/0001.patch
CVE-2024-42077/^6.10/0001.patch
CVE-2024-42102/4.14/0009.patch
CVE-2024-42296/^6.10/0001.patch
CVE-2024-43894/^6.11/0001.patch
CVE-2024-44938/^6.9/0001.patch
CVE-2024-44939/^6.9/0001.patch
CVE-2024-44952/4.14/0008.patch
CVE-2024-46681/^6.11/0001.patch
CVE-2024-47747/^6.11/0001.patch
CVE-2024-50017/^6.11/0001.patch
CVE-2024-50019/^6.12/0001.patch
CVE-2024-50184/^6.11/0001.patch
CVE-2024-50195/3.17-^6.12/0001.patch
CVE-2024-50201/^6.12/0001.patch
CVE-2024-50210/3.17-^6.6/0001.patch
CVE-2024-50265/^6.12/0001.patch
CVE-2024-50267/^6.12/0001.patch
CVE-2024-50269/^6.12/0001.patch
CVE-2024-50279/^6.12/0001.patch
CVE-2024-50287/^6.12/0001.patch
CVE-2024-50290/^6.12/0001.patch
CVE-2024-50292/^6.12/0001.patch
CVE-2024-50295/^6.12/0001.patch
CVE-2024-50299/^6.12/0001.patch
CVE-2024-50301/^6.12/0001.patch
CVE-2024-52332/ANY/0002.patch
CVE-2024-53045/^6.12/0001.patch
CVE-2024-53101/^6.12/0001.patch
CVE-2024-53103/^6.12/0001.patch
CVE-2024-53112/^6.12/0001.patch
CVE-2024-53127/^6.12/0001.patch
CVE-2024-53140/^6.12/0001.patch
CVE-2024-53141/^6.12/0001.patch
CVE-2024-53156/ANY/0002.patch
CVE-2024-53157/ANY/0002.patch
CVE-2024-53165/ANY/0002.patch
CVE-2024-53171/ANY/0001.patch
CVE-2024-53172/ANY/0002.patch
CVE-2024-53183/ANY/0002.patch
CVE-2024-53190/ANY/0001.patch
CVE-2024-53194/ANY/0002.patch
CVE-2024-53214/ANY/0002.patch
CVE-2024-53227/ANY/0002.patch
CVE-2024-53239/ANY/0001.patch
CVE-2024-53680/ANY/0002.patch
CVE-2024-53690/ANY/0001.patch
CVE-2024-56531/ANY/0002.patch
CVE-2024-56532/ANY/0002.patch
CVE-2024-56536/ANY/0001.patch
CVE-2024-56539/ANY/0002.patch
CVE-2024-56548/ANY/0002.patch
CVE-2024-56570/ANY/0001.patch
CVE-2024-56586/ANY/0001.patch
CVE-2024-56587/ANY/0002.patch
CVE-2024-56593/ANY/0001.patch
CVE-2024-56595/ANY/0002.patch
CVE-2024-56597/ANY/0002.patch
CVE-2024-56600/ANY/0001.patch
CVE-2024-56602/ANY/0001.patch
CVE-2024-56603/ANY/0002.patch
CVE-2024-56619/ANY/0002.patch
CVE-2024-56629/ANY/0001.patch
CVE-2024-56637/ANY/0002.patch
CVE-2024-56643/ANY/0002.patch
CVE-2024-56659/ANY/0002.patch
CVE-2024-56670/ANY/0002.patch
CVE-2024-56681/ANY/0001.patch
CVE-2024-56687/ANY/0001.patch
CVE-2024-56700/ANY/0002.patch
CVE-2024-56739/ANY/0002.patch
CVE-2024-56747/ANY/0001.patch
CVE-2024-56767/ANY/0002.patch
CVE-2024-56769/ANY/0002.patch
CVE-2024-57802/ANY/0002.patch
CVE-2024-57850/ANY/0002.patch
CVE-2024-57893/ANY/0001.patch
CVE-2024-57901/ANY/0001.patch
CVE-2024-57902/ANY/0001.patch
CVE-2024-57904/ANY/0001.patch
CVE-2024-57908/ANY/0001.patch
CVE-2024-57912/ANY/0001.patch
CVE-2024-57929/ANY/0001.patch
CVE-2024-57938/ANY/0002.patch
CVE-2024-57948/ANY/0001.patch
CVE-2024-57973/ANY/0001.patch
CVE-2024-58001/ANY/0001.patch
CVE-2024-58010/ANY/0001.patch
CVE-2024-58055/ANY/0001.patch
CVE-2024-58094/ANY/0001.patch
CVE-2024-58095/ANY/0001.patch
CVE-2025-21664/ANY/0001.patch
CVE-2025-21689/ANY/0001.patch
CVE-2025-21699/ANY/0001.patch
CVE-2025-21704/ANY/0001.patch
CVE-2025-21718/ANY/0001.patch
CVE-2025-21735/ANY/0001.patch
CVE-2025-21736/ANY/0001.patch
CVE-2025-21744/ANY/0001.patch
CVE-2025-21772/ANY/0001.patch
CVE-2025-21776/ANY/0001.patch
CVE-2025-21781/ANY/0001.patch
CVE-2025-21782/ANY/0001.patch
CVE-2025-21785/ANY/0001.patch
CVE-2025-21791/ANY/0001.patch
CVE-2025-21835/ANY/0001.patch
CVE-2025-21877/ANY/0001.patch
CVE-2025-21904/ANY/0001.patch
CVE-2025-21910/ANY/0001.patch
CVE-2025-21916/ANY/0001.patch
CVE-2025-21928/ANY/0001.patch
CVE-2025-21934/ANY/0001.patch
CVE-2025-21935/ANY/0001.patch
CVE-2025-21948/ANY/0001.patch
CVE-2025-21993/ANY/0001.patch
CVE-2025-21996/ANY/0001.patch
CVE-2025-22007/ANY/0001.patch
CVE-2025-22018/ANY/0001.patch
CVE-2025-22063/ANY/0001.patch
CVE-2025-22073/ANY/0001.patch
CVE-2025-22079/ANY/0001.patch
CVE-2025-22086/ANY/0001.patch
CVE-2025-23150/ANY/0001.patch
CVE-2025-23163/ANY/0001.patch
CVE-2025-37738/ANY/0001.patch
CVE-2025-37739/ANY/0001.patch
CVE-2025-37740/ANY/0001.patch
CVE-2025-37741/ANY/0001.patch
CVE-2025-37749/ANY/0001.patch
CVE-2025-37757/ANY/0001.patch
CVE-2025-37758/ANY/0001.patch
CVE-2025-37780/ANY/0001.patch
CVE-2025-37781/ANY/0001.patch
CVE-2025-37782/ANY/0001.patch
CVE-2025-37796/ANY/0001.patch
CVE-2025-37797/ANY/0001.patch
CVE-2025-37798/ANY/0001.patch
CVE-2025-37817/ANY/0001.patch
CVE-2025-37823/ANY/0001.patch
CVE-2025-37825/ANY/0001.patch
CVE-2025-37833/ANY/0001.patch
CVE-2025-37838/ANY/0001.patch
CVE-2025-37841/ANY/0001.patch
CVE-2025-37851/ANY/0001.patch
CVE-2025-37857/ANY/0001.patch
CVE-2025-37858/ANY/0001.patch
CVE-2025-37892/ANY/0001.patch
CVE-2025-37925/ANY/0001.patch
CVE-2025-37937/ANY/0002.patch
CVE-2025-37982/ANY/0001.patch
CVE-2025-37983/ANY/0001.patch
CVE-2025-37990/ANY/0001.patch
CVE-2025-38046/ANY/0001.patch
CVE-2025-38058/ANY/0001.patch
CVE-2025-38061/ANY/0001.patch
CVE-2025-38066/ANY/0001.patch
CVE-2025-38075/ANY/0001.patch
CVE-2025-38090/ANY/0001.patch
CVE-2025-38114/ANY/0001.patch
CVE-2025-38115/ANY/0001.patch
CVE-2025-38147/ANY/0001.patch
CVE-2025-38157/ANY/0001.patch
CVE-2025-38163/ANY/0001.patch
CVE-2025-38174/ANY/0001.patch
CVE-2025-38177/ANY/0001.patch
CVE-2025-38180/ANY/0001.patch
CVE-2025-38181/ANY/0001.patch
CVE-2025-38184/ANY/0001.patch
CVE-2025-38185/ANY/0001.patch
CVE-2025-38190/ANY/0001.patch
CVE-2025-38194/ANY/0001.patch
CVE-2025-38203/ANY/0001.patch
CVE-2025-38212/ANY/0001.patch
CVE-2025-38213/ANY/0001.patch
CVE-2025-38219/ANY/0001.patch
CVE-2025-38222/ANY/0001.patch
CVE-2025-38245/ANY/0001.patch
CVE-2025-38251/ANY/0001.patch
CVE-2025-38265/ANY/0001.patch
CVE-2025-38312/ANY/0001.patch
CVE-2025-38320/ANY/0001.patch
CVE-2025-38324/ANY/0001.patch
CVE-2025-38328/ANY/0001.patch
CVE-2025-38336/ANY/0001.patch
CVE-2025-38344/ANY/0001.patch
CVE-2025-38345/ANY/0001.patch
CVE-2025-38348/ANY/0001.patch
CVE-2025-38386/ANY/0001.patch
CVE-2025-38403/ANY/0001.patch
CVE-2025-38406/ANY/0001.patch
CVE-2025-38416/ANY/0001.patch
CVE-2025-38420/ANY/0001.patch
CVE-2025-38428/ANY/0001.patch
CVE-2025-38445/ANY/0001.patch
CVE-2025-38448/ANY/0001.patch
CVE-2025-38458/ANY/0001.patch
CVE-2025-38459/ANY/0001.patch
CVE-2025-38460/ANY/0001.patch
CVE-2025-38467/ANY/0001.patch
CVE-2025-38468/ANY/0001.patch
CVE-2025-38470/ANY/0001.patch
CVE-2025-38474/ANY/0001.patch
CVE-2025-38513/ANY/0001.patch
CVE-2025-38514/ANY/0001.patch
CVE-2025-38538/ANY/0001.patch
CVE-2025-38542/ANY/0001.patch
CVE-2025-38544/ANY/0001.patch
CVE-2025-38546/ANY/0001.patch
CVE-2025-38555/ANY/0001.patch
CVE-2025-38574/ANY/0001.patch
CVE-2025-38578/ANY/0001.patch
CVE-2025-38581/ANY/0001.patch
CVE-2025-38604/ANY/0001.patch
CVE-2025-38611/ANY/0001.patch
CVE-2025-38612/ANY/0001.patch
CVE-2025-38618/ANY/0001.patch
CVE-2025-38639/ANY/0001.patch
CVE-2025-38691/ANY/0001.patch
CVE-2025-38693/ANY/0001.patch
CVE-2025-38694/ANY/0001.patch
CVE-2025-38697/ANY/0001.patch
CVE-2025-38698/ANY/0001.patch
CVE-2025-38699/ANY/0001.patch
CVE-2025-38701/ANY/0001.patch
CVE-2025-38708/ANY/0001.patch
CVE-2025-38712/ANY/0001.patch
CVE-2025-38713/ANY/0001.patch
CVE-2025-38717/ANY/0001.patch
CVE-2025-39676/ANY/0001.patch
CVE-2025-39691/ANY/0001.patch
CVE-2025-39710/ANY/0001.patch
CVE-2025-39714/ANY/0001.patch
CVE-2025-39743/ANY/0001.patch
CVE-2025-39756/ANY/0001.patch
CVE-2025-39782/ANY/0001.patch
CVE-2025-39794/ANY/0001.patch
CVE-2025-39796/ANY/0001.patch
CVE-2025-39808/ANY/0001.patch
CVE-2025-39812/ANY/0001.patch
CVE-2025-39817/ANY/0001.patch
CVE-2025-39839/ANY/0001.patch
CVE-2025-39846/ANY/0001.patch
CVE-2025-39848/ANY/0001.patch
CVE-2025-39885/ANY/0001.patch
CVE-2025-39889/ANY/0001.patch
CVE-2025-39898/ANY/0001.patch
CVE-2025-39903/ANY/0001.patch
CVE-2025-39913/ANY/0001.patch
CVE-2025-39920/ANY/0001.patch
CVE-2025-39945/ANY/0001.patch
CVE-2025-39964/ANY/0001.patch
CVE-2025-39967/ANY/0001.patch
CVE-2025-39973/ANY/0001.patch
CVE-2025-39996/ANY/0001.patch
CVE-2025-40011/ANY/0001.patch
CVE-2025-40020/ANY/0001.patch
CVE-2025-40022/ANY/0001.patch
CVE-2025-40028/ANY/0001.patch
CVE-2025-40030/ANY/0001.patch
CVE-2025-40035/ANY/0001.patch
CVE-2025-40044/ANY/0001.patch
CVE-2025-40049/ANY/0001.patch
CVE-2025-40055/ANY/0001.patch
CVE-2025-40082/ANY/0001.patch
CVE-2019-12819/4.14/0006.patch
CVE-2021-47472/4.14/0003.patch
CVE-2023-53129/ANY/0001.patch
CVE-2023-53626/ANY/0001.patch
CVE-2024-26720/4.14/0009.patch
CVE-2024-39501/4.14/0009.patch
CVE-2024-42102/4.14/0009.patch
CVE-2024-50195/3.17-^6.12/0001.patch
CVE-2024-50210/3.17-^6.6/0001.patch
@@ -0,0 +1,38 @@
# relative to AXP kernel_patches
# LAB 2026-10-01: alone ⇒ Google-logo hang (udc_lock recursive deadlock on
# msm-4.14; needs lock-scope companion, not one-liner). Do not re-apply.
CVE-2022-49980/ANY/0001.patch
CVE-2017-15832/qcacld-3.0/0001.patch
CVE-2021-29648/^5.11/0001.patch
CVE-2022-33246/audio-kernel/0002.patch
CVE-2022-49545/ANY/0001.patch
CVE-2022-49552/ANY/0001.patch
CVE-2022-49801/ANY/0001.patch
CVE-2022-50421/ANY/0001.patch
CVE-2023-33064/audio-kernel/0001.patch
CVE-2023-33065/audio-kernel/0001.patch
CVE-2023-43528/audio-kernel/0001.patch
CVE-2023-52741/^6.2/0001.patch
CVE-2023-53103/ANY/0001.patch
CVE-2023-53660/ANY/0001.patch
CVE-2024-21459/qca-wifi-host-cmn/0001.patch
CVE-2024-38564/^6.9/0001.patch
CVE-2024-56553/ANY/0001.patch
CVE-2024-56554/ANY/0001.patch
CVE-2024-56692/ANY/0001.patch
CVE-2024-56780/ANY/0001.patch
CVE-2025-21629/ANY/0001.patch
CVE-2025-21653/ANY/0001.patch
CVE-2025-21762/ANY/0001.patch
CVE-2025-21764/ANY/0001.patch
CVE-2025-21765/ANY/0001.patch
CVE-2025-21859/ANY/0001.patch
CVE-2025-21954/ANY/0001.patch
CVE-2025-22035/ANY/0001.patch
CVE-2025-37785/ANY/0001.patch
CVE-2025-37960/ANY/0001.patch
CVE-2025-38099/ANY/0001.patch
CVE-2025-38253/ANY/0001.patch
CVE-2025-38677/ANY/0001.patch
CVE-2025-39770/ANY/0001.patch
CVE-2025-39813/ANY/0001.patch
@@ -0,0 +1,9 @@
# High-offset sunfish batch1 (fuzz=0 spot-checked). Applied with CVE_MAX_ABS_OFFSET=9999
# after cve-clean-offset. Dropped CVE-2023-3777: nft_chain_is_bound missing on 4.14.
CVE-2020-29372/^5.7/0001.patch
CVE-2021-47209/^5.15/0001.patch
CVE-2022-50246/ANY/0001.patch
CVE-2023-53669/ANY/0001.patch
CVE-2024-40954/^6.10/0001.patch
CVE-2024-50186/^6.12/0001.patch
CVE-2024-43879/^6.10/0001.patch
@@ -0,0 +1,10 @@
# High-offset sunfish batch2 (after batch1 BOOT_OK #48). Elevated CVE_MAX_ABS_OFFSET=9999.
# Prefer mm/sched/sysctl/f2fs/wifi/driver-core; skip nf_tables-style (missing helpers).
CVE-2022-49641/ANY/0001.patch
CVE-2023-52707/^6.2/0001.patch
CVE-2023-53594/ANY/0001.patch
CVE-2023-53709/ANY/0001.patch
CVE-2024-40917/^6.10/0001.patch
CVE-2024-56569/ANY/0001.patch
CVE-2025-21909/ANY/0001.patch
CVE-2025-38218/ANY/0001.patch
@@ -0,0 +1,11 @@
# High-offset sunfish batch3 — remaining KEEP after batch1+2 BOOT_OK #49.
# Skip CVE-2023-3777 / CVE-2024-26643 (nf_tables helpers missing on 4.14).
CVE-2021-47299/^5.13/0001.patch
CVE-2022-49341/ANY/0001.patch
CVE-2022-49412/ANY/0001.patch
CVE-2023-52676/^6.7/0001.patch
CVE-2024-46754/^6.10/0001.patch
CVE-2025-37923/ANY/0001.patch
CVE-2025-38285/ANY/0001.patch
CVE-2025-39751/ANY/0001.patch
CVE-2025-40078/ANY/0001.patch
@@ -0,0 +1,73 @@
CVE-2020-29372/^5.7/0001.patch
CVE-2021-47209/^5.15/0001.patch
CVE-2021-47299/^5.13/0001.patch
CVE-2022-48825/^5.17/0001.patch
CVE-2022-48969/^6.1/0001.patch
CVE-2022-49086/ANY/0001.patch
CVE-2022-49341/ANY/0001.patch
CVE-2022-49412/ANY/0001.patch
CVE-2022-49641/ANY/0001.patch
CVE-2022-49687/ANY/0001.patch
CVE-2022-49695/ANY/0001.patch
CVE-2022-49715/ANY/0001.patch
CVE-2022-50246/ANY/0001.patch
CVE-2022-50304/ANY/0001.patch
CVE-2023-3777/^6.5/0001.patch
CVE-2023-52486/^6.7/0001.patch
CVE-2023-52676/^6.7/0001.patch
CVE-2023-52707/^6.2/0001.patch
CVE-2023-52847/^6.6/0001.patch
CVE-2023-53594/ANY/0001.patch
CVE-2023-53669/ANY/0001.patch
CVE-2023-53709/ANY/0001.patch
CVE-2024-2201/^6.9/0001.patch
CVE-2024-24855/^6.4/0001.patch
CVE-2024-26643/^6.8/0001.patch
CVE-2024-26900/^6.8/0001.patch
CVE-2024-39296/^6.9/0001.patch
CVE-2024-40917/^6.10/0001.patch
CVE-2024-40923/^6.10/0001.patch
CVE-2024-40954/^6.10/0001.patch
CVE-2024-41014/^6.10/0001.patch
CVE-2024-43879/^6.10/0001.patch
CVE-2024-46754/^6.10/0001.patch
CVE-2024-46830/^6.11/0001.patch
CVE-2024-50186/^6.12/0001.patch
CVE-2024-50273/^6.11/0001.patch
CVE-2024-53066/^6.12/0001.patch
CVE-2024-53173/ANY/0002.patch
CVE-2024-53217/ANY/0002.patch
CVE-2024-53240/ANY/0001.patch
CVE-2024-56558/ANY/0001.patch
CVE-2024-56569/ANY/0001.patch
CVE-2024-56596/ANY/0002.patch
CVE-2024-56598/ANY/0002.patch
CVE-2024-56605/ANY/0002.patch
CVE-2024-56779/ANY/0002.patch
CVE-2024-57849/ANY/0002.patch
CVE-2024-58009/ANY/0001.patch
CVE-2024-58083/ANY/0001.patch
CVE-2025-21671/ANY/0001.patch
CVE-2025-21909/ANY/0001.patch
CVE-2025-37789/ANY/0001.patch
CVE-2025-37795/ANY/0001.patch
CVE-2025-37839/ANY/0001.patch
CVE-2025-37923/ANY/0001.patch
CVE-2025-37932/ANY/0001.patch
CVE-2025-38034/ANY/0001.patch
CVE-2025-38044/ANY/0001.patch
CVE-2025-38200/ANY/0001.patch
CVE-2025-38204/ANY/0001.patch
CVE-2025-38218/ANY/0001.patch
CVE-2025-38285/ANY/0001.patch
CVE-2025-38473/ANY/0001.patch
CVE-2025-38495/ANY/0001.patch
CVE-2025-38498/ANY/0002.patch
CVE-2025-39742/ANY/0001.patch
CVE-2025-39751/ANY/0001.patch
CVE-2025-39824/ANY/0001.patch
CVE-2025-39847/ANY/0001.patch
CVE-2025-39874/ANY/0001.patch
CVE-2025-39998/ANY/0001.patch
CVE-2025-40078/ANY/0001.patch
CVE-2025-40080/ANY/0001.patch
@@ -0,0 +1,26 @@
CVE-2020-29372/^5.7/0001.patch
CVE-2021-47209/^5.15/0001.patch
CVE-2021-47299/^5.13/0001.patch
CVE-2022-49341/ANY/0001.patch
CVE-2022-49412/ANY/0001.patch
CVE-2022-49641/ANY/0001.patch
CVE-2022-50246/ANY/0001.patch
CVE-2023-3777/^6.5/0001.patch
CVE-2023-52676/^6.7/0001.patch
CVE-2023-52707/^6.2/0001.patch
CVE-2023-53594/ANY/0001.patch
CVE-2023-53669/ANY/0001.patch
CVE-2023-53709/ANY/0001.patch
CVE-2024-26643/^6.8/0001.patch
CVE-2024-40917/^6.10/0001.patch
CVE-2024-40954/^6.10/0001.patch
CVE-2024-43879/^6.10/0001.patch
CVE-2024-46754/^6.10/0001.patch
CVE-2024-50186/^6.12/0001.patch
CVE-2024-56569/ANY/0001.patch
CVE-2025-21909/ANY/0001.patch
CVE-2025-37923/ANY/0001.patch
CVE-2025-38218/ANY/0001.patch
CVE-2025-38285/ANY/0001.patch
CVE-2025-39751/ANY/0001.patch
CVE-2025-40078/ANY/0001.patch
@@ -0,0 +1,47 @@
CVE-2022-48825/^5.17/0001.patch # no_live_path_match
CVE-2022-48969/^6.1/0001.patch # deadnet
CVE-2022-49086/ANY/0001.patch # deadnet
CVE-2022-49687/ANY/0001.patch # deadnet
CVE-2022-49695/ANY/0001.patch # deadnet
CVE-2022-49715/ANY/0001.patch # no_live_path_match
CVE-2022-50304/ANY/0001.patch # no_live_path_match
CVE-2023-52486/^6.7/0001.patch # no_live_path_match
CVE-2023-52847/^6.6/0001.patch # no_live_path_match
CVE-2024-2201/^6.9/0001.patch # offarch
CVE-2024-24855/^6.4/0001.patch # no_live_path_match
CVE-2024-26900/^6.8/0001.patch # no_live_path_match
CVE-2024-39296/^6.9/0001.patch # deadnet
CVE-2024-40923/^6.10/0001.patch # deadnet
CVE-2024-41014/^6.10/0001.patch # deadfs
CVE-2024-46830/^6.11/0001.patch # offarch
CVE-2024-50273/^6.11/0001.patch # deadfs
CVE-2024-53066/^6.12/0001.patch # deadfs
CVE-2024-53173/ANY/0002.patch # deadfs
CVE-2024-53217/ANY/0002.patch # deadfs
CVE-2024-53240/ANY/0001.patch # deadnet
CVE-2024-56558/ANY/0001.patch # deadfs
CVE-2024-56596/ANY/0002.patch # no_live_path_match
CVE-2024-56598/ANY/0002.patch # no_live_path_match
CVE-2024-56605/ANY/0002.patch # no_live_path_match
CVE-2024-56779/ANY/0002.patch # deadfs
CVE-2024-57849/ANY/0002.patch # offarch
CVE-2024-58009/ANY/0001.patch # no_live_path_match
CVE-2024-58083/ANY/0001.patch # no_live_path_match
CVE-2025-21671/ANY/0001.patch # no_live_path_match
CVE-2025-37789/ANY/0001.patch # deadnet
CVE-2025-37795/ANY/0001.patch # no_live_path_match
CVE-2025-37839/ANY/0001.patch # no_live_path_match
CVE-2025-37932/ANY/0001.patch # no_live_path_match
CVE-2025-38034/ANY/0001.patch # no_live_path_match
CVE-2025-38044/ANY/0001.patch # no_live_path_match
CVE-2025-38200/ANY/0001.patch # no_live_path_match
CVE-2025-38204/ANY/0001.patch # no_live_path_match
CVE-2025-38473/ANY/0001.patch # no_live_path_match
CVE-2025-38495/ANY/0001.patch # no_live_path_match
CVE-2025-38498/ANY/0002.patch # no_live_path_match
CVE-2025-39742/ANY/0001.patch # no_live_path_match
CVE-2025-39824/ANY/0001.patch # no_live_path_match
CVE-2025-39847/ANY/0001.patch # no_live_path_match
CVE-2025-39874/ANY/0001.patch # no_live_path_match
CVE-2025-39998/ANY/0001.patch # no_live_path_match
CVE-2025-40080/ANY/0001.patch # no_live_path_match
@@ -0,0 +1,503 @@
0003-syzkaller-Misc/ANY/0008.patch
CVE-2015-7837/ANY/0001.patch
CVE-2016-3695/ANY/0001.patch
CVE-2017-5754/^4.19/0157.patch
CVE-2017-18232/4.14/0002.patch
CVE-2018-5897/ANY/0001.patch
CVE-2018-9415/ANY/0005.patch
CVE-2018-20855/^4.18/0001.patch
CVE-2019-3874/^5.1/0002.patch
CVE-2019-9444/ANY/0001.patch
CVE-2019-10520/ANY/0001.patch
CVE-2019-11191/^5.0/0001.patch
CVE-2019-12378/^5.1.5/0001.patch
CVE-2019-12455/^5.2/0001.patch
CVE-2019-12456/^5.1.5/0002.patch
CVE-2019-15291/4.14/0004.patch
CVE-2019-16921/^4.16/0001.patch
CVE-2019-18786/4.14/0002.patch
CVE-2019-19051/4.14/0008.patch
CVE-2019-19068/4.14/0002.patch
CVE-2019-19602/^5.4/0001.patch
CVE-2019-20908/^5.2/0001.patch
CVE-2020-0255/^5.6/0001.patch
CVE-2020-8832/^4.14/0001.patch
CVE-2020-15780/^5.8/0001.patch
CVE-2020-16119/^5.10/0002.patch
CVE-2020-29372/^5.7/0001.patch
CVE-2020-BleedingToothExtras/^5.10/0001.patch
CVE-2021-3493/^5.10/0001.patch
CVE-2021-28039/^5.11/0001.patch
CVE-2021-28950/4.14/0002.patch
CVE-2021-29154/^5.12/0002.patch
CVE-2021-30337/4.14/0018.patch
CVE-2021-46912/^5.12/0001.patch
CVE-2021-46958/^5.12/0001.patch
CVE-2021-46999/^5.12/0001.patch
CVE-2021-47010/^5.12/0001.patch
CVE-2021-47058/^5.12/0001.patch
CVE-2021-47173/4.14/0003.patch
CVE-2021-47209/^5.15/0001.patch
CVE-2021-47234/^5.13/0001.patch
CVE-2021-47266/^5.13/0001.patch
CVE-2021-47299/^5.13/0001.patch
CVE-2021-47346/^5.13/0001.patch
CVE-2021-47430/^5.15/0001.patch
CVE-2021-47472/4.14/0003.patch
CVE-2021-47583/^5.15/0001.patch
CVE-2021-47616/^5.16/0001.patch
CVE-2021-47618/^5.16/0001.patch
CVE-2021-47636/ANY/0001.patch
CVE-2022-3061/^5.18/0001.patch
CVE-2022-3903/^6.0/0001.patch
CVE-2022-4382/^6.2/0001.patch
CVE-2022-21546/ANY/0001.patch
CVE-2022-27950/^5.16/0001.patch
CVE-2022-48674/^6.0/0001.patch
CVE-2022-48713/^5.17/0001.patch
CVE-2022-48781/^5.17/0001.patch
CVE-2022-48785/^5.17/0001.patch
CVE-2022-48825/^5.17/0001.patch
CVE-2022-48966/4.14/0002.patch
CVE-2022-48969/^6.1/0001.patch
CVE-2022-49034/ANY/0002.patch
CVE-2022-49061/4.14/0002.patch
CVE-2022-49073/ANY/0001.patch
CVE-2022-49078/ANY/0001.patch
CVE-2022-49086/ANY/0001.patch
CVE-2022-49146/ANY/0001.patch
CVE-2022-49194/ANY/0001.patch
CVE-2022-49205/ANY/0001.patch
CVE-2022-49209/ANY/0001.patch
CVE-2022-49285/ANY/0001.patch
CVE-2022-49318/ANY/0001.patch
CVE-2022-49341/ANY/0001.patch
CVE-2022-49363/ANY/0001.patch
CVE-2022-49364/ANY/0001.patch
CVE-2022-49380/ANY/0001.patch
CVE-2022-49412/ANY/0001.patch
CVE-2022-49425/ANY/0001.patch
CVE-2022-49428/ANY/0001.patch
CVE-2022-49433/ANY/0001.patch
CVE-2022-49500/ANY/0001.patch
CVE-2022-49513/ANY/0001.patch
CVE-2022-49563/ANY/0001.patch
CVE-2022-49564/ANY/0001.patch
CVE-2022-49566/ANY/0001.patch
CVE-2022-49641/ANY/0001.patch
CVE-2022-49642/ANY/0001.patch
CVE-2022-49687/ANY/0001.patch
CVE-2022-49695/ANY/0001.patch
CVE-2022-49705/ANY/0001.patch
CVE-2022-49710/ANY/0001.patch
CVE-2022-49715/ANY/0001.patch
CVE-2022-49777/ANY/0001.patch
CVE-2022-49779/ANY/0001.patch
CVE-2022-49784/ANY/0001.patch
CVE-2022-49823/ANY/0001.patch
CVE-2022-49824/ANY/0001.patch
CVE-2022-49825/ANY/0001.patch
CVE-2022-49839/ANY/0001.patch
CVE-2022-49863/ANY/0001.patch
CVE-2022-49980/ANY/0001.patch
CVE-2022-49990/ANY/0001.patch
CVE-2022-49993/4.14/0003.patch
CVE-2022-50013/ANY/0001.patch
CVE-2022-50062/ANY/0001.patch
CVE-2022-50074/ANY/0001.patch
CVE-2022-50246/ANY/0001.patch
CVE-2022-50248/ANY/0001.patch
CVE-2022-50273/ANY/0001.patch
CVE-2022-50304/ANY/0001.patch
CVE-2022-50326/ANY/0001.patch
CVE-2022-50358/ANY/0001.patch
CVE-2022-50364/ANY/0001.patch
CVE-2022-50397/ANY/0001.patch
CVE-2022-50473/ANY/0001.patch
CVE-2022-50522/4.14/0003.patch
CVE-2022-50537/ANY/0001.patch
CVE-2023-1989/4.14/0003.patch
CVE-2023-3777/^6.5/0001.patch
CVE-2023-21657/4.14/0005.patch
CVE-2023-23000/^5.16/0001.patch
CVE-2023-28554/ANY/0002.patch
CVE-2023-33070/ANY/0001.patch
CVE-2023-52486/^6.7/0001.patch
CVE-2023-52523/^6.6/0001.patch
CVE-2023-52595/^6.6/0001.patch
CVE-2023-52604/4.14/0009.patch
CVE-2023-52676/^6.7/0001.patch
CVE-2023-52707/^6.2/0001.patch
CVE-2023-52746/^6.2/0001.patch
CVE-2023-52847/^6.6/0001.patch
CVE-2023-52884/^6.5/0001.patch
CVE-2023-52979/4.14/0003.patch
CVE-2023-53001/ANY/0001.patch
CVE-2023-53016/ANY/0001.patch
CVE-2023-53098/ANY/0001.patch
CVE-2023-53125/4.14/0003.patch
CVE-2023-53131/ANY/0001.patch
CVE-2023-53137/ANY/0001.patch
CVE-2023-53214/ANY/0001.patch
CVE-2023-53227/4.14/0003.patch
CVE-2023-53250/ANY/0001.patch
CVE-2023-53259/ANY/0002.patch
CVE-2023-53265/4.14/0003.patch
CVE-2023-53288/ANY/0001.patch
CVE-2023-53312/ANY/0001.patch
CVE-2023-53436/4.14/0003.patch
CVE-2023-53443/ANY/0001.patch
CVE-2023-53487/ANY/0002.patch
CVE-2023-53537/ANY/0001.patch
CVE-2023-53594/ANY/0001.patch
CVE-2023-53599/ANY/0001.patch
CVE-2023-53641/ANY/0001.patch
CVE-2023-53669/ANY/0001.patch
CVE-2023-53693/ANY/0001.patch
CVE-2023-53695/ANY/0001.patch
CVE-2023-53709/ANY/0001.patch
CVE-2023-53712/ANY/0001.patch
CVE-2023-53719/ANY/0001.patch
CVE-2024-2201/^6.9/0001.patch
CVE-2024-24855/^6.4/0001.patch
CVE-2024-26643/^6.8/0001.patch
CVE-2024-26645/^6.8/0001.patch
CVE-2024-26720/4.14/0009.patch
CVE-2024-26760/^6.8/0001.patch
CVE-2024-26900/^6.8/0001.patch
CVE-2024-26920/4.14/0009.patch
CVE-2024-26961/^6.7/0001.patch
CVE-2024-26972/^6.8/0001.patch
CVE-2024-27009/^6.9/0001.patch
CVE-2024-27033/^6.8/0001.patch
CVE-2024-27393/^6.9/0001.patch
CVE-2024-33032/ANY/0002.patch
CVE-2024-34027/^6.9/0001.patch
CVE-2024-35812/4.14/0009.patch
CVE-2024-35824/^6.8/0001.patch
CVE-2024-35879/^6.9/0001.patch
CVE-2024-35933/4.14/0008.patch
CVE-2024-35950/^6.9/0001.patch
CVE-2024-35954/^6.9/0001.patch
CVE-2024-35962/^6.9/0001.patch
CVE-2024-39296/^6.9/0001.patch
CVE-2024-40917/^6.10/0001.patch
CVE-2024-40923/^6.10/0001.patch
CVE-2024-40954/^6.10/0001.patch
CVE-2024-40996/^6.10/0001.patch
CVE-2024-41014/^6.10/0001.patch
CVE-2024-41041/^6.10/0001.patch
CVE-2024-42077/^6.10/0001.patch
CVE-2024-42102/4.14/0009.patch
CVE-2024-42296/^6.10/0001.patch
CVE-2024-43879/^6.10/0001.patch
CVE-2024-43894/^6.11/0001.patch
CVE-2024-44938/^6.9/0001.patch
CVE-2024-44939/^6.9/0001.patch
CVE-2024-44952/4.14/0008.patch
CVE-2024-46681/^6.11/0001.patch
CVE-2024-46754/^6.10/0001.patch
CVE-2024-46830/^6.11/0001.patch
CVE-2024-47747/^6.11/0001.patch
CVE-2024-50017/^6.11/0001.patch
CVE-2024-50019/^6.12/0001.patch
CVE-2024-50184/^6.11/0001.patch
CVE-2024-50186/^6.12/0001.patch
CVE-2024-50195/3.17-^6.12/0001.patch
CVE-2024-50201/^6.12/0001.patch
CVE-2024-50210/3.17-^6.6/0001.patch
CVE-2024-50265/^6.12/0001.patch
CVE-2024-50267/^6.12/0001.patch
CVE-2024-50269/^6.12/0001.patch
CVE-2024-50273/^6.11/0001.patch
CVE-2024-50279/^6.12/0001.patch
CVE-2024-50287/^6.12/0001.patch
CVE-2024-50290/^6.12/0001.patch
CVE-2024-50292/^6.12/0001.patch
CVE-2024-50295/^6.12/0001.patch
CVE-2024-50299/^6.12/0001.patch
CVE-2024-50301/^6.12/0001.patch
CVE-2024-52332/ANY/0002.patch
CVE-2024-53045/^6.12/0001.patch
CVE-2024-53066/^6.12/0001.patch
CVE-2024-53101/^6.12/0001.patch
CVE-2024-53103/^6.12/0001.patch
CVE-2024-53112/^6.12/0001.patch
CVE-2024-53127/^6.12/0001.patch
CVE-2024-53140/^6.12/0001.patch
CVE-2024-53141/^6.12/0001.patch
CVE-2024-53156/ANY/0002.patch
CVE-2024-53157/ANY/0002.patch
CVE-2024-53165/ANY/0002.patch
CVE-2024-53171/ANY/0001.patch
CVE-2024-53172/ANY/0002.patch
CVE-2024-53173/ANY/0002.patch
CVE-2024-53183/ANY/0002.patch
CVE-2024-53190/ANY/0001.patch
CVE-2024-53194/ANY/0002.patch
CVE-2024-53214/ANY/0002.patch
CVE-2024-53217/ANY/0002.patch
CVE-2024-53227/ANY/0002.patch
CVE-2024-53239/ANY/0001.patch
CVE-2024-53240/ANY/0001.patch
CVE-2024-53680/ANY/0002.patch
CVE-2024-53690/ANY/0001.patch
CVE-2024-56531/ANY/0002.patch
CVE-2024-56532/ANY/0002.patch
CVE-2024-56536/ANY/0001.patch
CVE-2024-56539/ANY/0002.patch
CVE-2024-56548/ANY/0002.patch
CVE-2024-56558/ANY/0001.patch
CVE-2024-56569/ANY/0001.patch
CVE-2024-56570/ANY/0001.patch
CVE-2024-56586/ANY/0001.patch
CVE-2024-56587/ANY/0002.patch
CVE-2024-56593/ANY/0001.patch
CVE-2024-56595/ANY/0002.patch
CVE-2024-56596/ANY/0002.patch
CVE-2024-56597/ANY/0002.patch
CVE-2024-56598/ANY/0002.patch
CVE-2024-56600/ANY/0001.patch
CVE-2024-56602/ANY/0001.patch
CVE-2024-56603/ANY/0002.patch
CVE-2024-56605/ANY/0002.patch
CVE-2024-56619/ANY/0002.patch
CVE-2024-56629/ANY/0001.patch
CVE-2024-56637/ANY/0002.patch
CVE-2024-56643/ANY/0002.patch
CVE-2024-56659/ANY/0002.patch
CVE-2024-56670/ANY/0002.patch
CVE-2024-56681/ANY/0001.patch
CVE-2024-56687/ANY/0001.patch
CVE-2024-56700/ANY/0002.patch
CVE-2024-56739/ANY/0002.patch
CVE-2024-56747/ANY/0001.patch
CVE-2024-56767/ANY/0002.patch
CVE-2024-56769/ANY/0002.patch
CVE-2024-56779/ANY/0002.patch
CVE-2024-57802/ANY/0002.patch
CVE-2024-57849/ANY/0002.patch
CVE-2024-57850/ANY/0002.patch
CVE-2024-57893/ANY/0001.patch
CVE-2024-57901/ANY/0001.patch
CVE-2024-57902/ANY/0001.patch
CVE-2024-57904/ANY/0001.patch
CVE-2024-57908/ANY/0001.patch
CVE-2024-57912/ANY/0001.patch
CVE-2024-57929/ANY/0001.patch
CVE-2024-57938/ANY/0002.patch
CVE-2024-57948/ANY/0001.patch
CVE-2024-57973/ANY/0001.patch
CVE-2024-58001/ANY/0001.patch
CVE-2024-58009/ANY/0001.patch
CVE-2024-58010/ANY/0001.patch
CVE-2024-58055/ANY/0001.patch
CVE-2024-58083/ANY/0001.patch
CVE-2024-58094/ANY/0001.patch
CVE-2024-58095/ANY/0001.patch
CVE-2025-21664/ANY/0001.patch
CVE-2025-21671/ANY/0001.patch
CVE-2025-21689/ANY/0001.patch
CVE-2025-21699/ANY/0001.patch
CVE-2025-21704/ANY/0001.patch
CVE-2025-21718/ANY/0001.patch
CVE-2025-21735/ANY/0001.patch
CVE-2025-21736/ANY/0001.patch
CVE-2025-21744/ANY/0001.patch
CVE-2025-21772/ANY/0001.patch
CVE-2025-21776/ANY/0001.patch
CVE-2025-21781/ANY/0001.patch
CVE-2025-21782/ANY/0001.patch
CVE-2025-21785/ANY/0001.patch
CVE-2025-21791/ANY/0001.patch
CVE-2025-21835/ANY/0001.patch
CVE-2025-21877/ANY/0001.patch
CVE-2025-21904/ANY/0001.patch
CVE-2025-21909/ANY/0001.patch
CVE-2025-21910/ANY/0001.patch
CVE-2025-21916/ANY/0001.patch
CVE-2025-21928/ANY/0001.patch
CVE-2025-21934/ANY/0001.patch
CVE-2025-21935/ANY/0001.patch
CVE-2025-21948/ANY/0001.patch
CVE-2025-21993/ANY/0001.patch
CVE-2025-21996/ANY/0001.patch
CVE-2025-22007/ANY/0001.patch
CVE-2025-22018/ANY/0001.patch
CVE-2025-22063/ANY/0001.patch
CVE-2025-22073/ANY/0001.patch
CVE-2025-22079/ANY/0001.patch
CVE-2025-22086/ANY/0001.patch
CVE-2025-23150/ANY/0001.patch
CVE-2025-23163/ANY/0001.patch
CVE-2025-37738/ANY/0001.patch
CVE-2025-37739/ANY/0001.patch
CVE-2025-37740/ANY/0001.patch
CVE-2025-37741/ANY/0001.patch
CVE-2025-37749/ANY/0001.patch
CVE-2025-37757/ANY/0001.patch
CVE-2025-37758/ANY/0001.patch
CVE-2025-37780/ANY/0001.patch
CVE-2025-37781/ANY/0001.patch
CVE-2025-37782/ANY/0001.patch
CVE-2025-37789/ANY/0001.patch
CVE-2025-37795/ANY/0001.patch
CVE-2025-37796/ANY/0001.patch
CVE-2025-37797/ANY/0001.patch
CVE-2025-37798/ANY/0001.patch
CVE-2025-37817/ANY/0001.patch
CVE-2025-37823/ANY/0001.patch
CVE-2025-37825/ANY/0001.patch
CVE-2025-37833/ANY/0001.patch
CVE-2025-37838/ANY/0001.patch
CVE-2025-37839/ANY/0001.patch
CVE-2025-37841/ANY/0001.patch
CVE-2025-37851/ANY/0001.patch
CVE-2025-37857/ANY/0001.patch
CVE-2025-37858/ANY/0001.patch
CVE-2025-37892/ANY/0001.patch
CVE-2025-37923/ANY/0001.patch
CVE-2025-37925/ANY/0001.patch
CVE-2025-37932/ANY/0001.patch
CVE-2025-37937/ANY/0002.patch
CVE-2025-37982/ANY/0001.patch
CVE-2025-37983/ANY/0001.patch
CVE-2025-37990/ANY/0001.patch
CVE-2025-38034/ANY/0001.patch
CVE-2025-38044/ANY/0001.patch
CVE-2025-38046/ANY/0001.patch
CVE-2025-38058/ANY/0001.patch
CVE-2025-38061/ANY/0001.patch
CVE-2025-38066/ANY/0001.patch
CVE-2025-38075/ANY/0001.patch
CVE-2025-38090/ANY/0001.patch
CVE-2025-38114/ANY/0001.patch
CVE-2025-38115/ANY/0001.patch
CVE-2025-38147/ANY/0001.patch
CVE-2025-38157/ANY/0001.patch
CVE-2025-38163/ANY/0001.patch
CVE-2025-38174/ANY/0001.patch
CVE-2025-38177/ANY/0001.patch
CVE-2025-38180/ANY/0001.patch
CVE-2025-38181/ANY/0001.patch
CVE-2025-38184/ANY/0001.patch
CVE-2025-38185/ANY/0001.patch
CVE-2025-38190/ANY/0001.patch
CVE-2025-38194/ANY/0001.patch
CVE-2025-38200/ANY/0001.patch
CVE-2025-38203/ANY/0001.patch
CVE-2025-38204/ANY/0001.patch
CVE-2025-38212/ANY/0001.patch
CVE-2025-38213/ANY/0001.patch
CVE-2025-38218/ANY/0001.patch
CVE-2025-38219/ANY/0001.patch
CVE-2025-38222/ANY/0001.patch
CVE-2025-38245/ANY/0001.patch
CVE-2025-38251/ANY/0001.patch
CVE-2025-38265/ANY/0001.patch
CVE-2025-38285/ANY/0001.patch
CVE-2025-38312/ANY/0001.patch
CVE-2025-38320/ANY/0001.patch
CVE-2025-38324/ANY/0001.patch
CVE-2025-38328/ANY/0001.patch
CVE-2025-38336/ANY/0001.patch
CVE-2025-38344/ANY/0001.patch
CVE-2025-38345/ANY/0001.patch
CVE-2025-38348/ANY/0001.patch
CVE-2025-38386/ANY/0001.patch
CVE-2025-38403/ANY/0001.patch
CVE-2025-38406/ANY/0001.patch
CVE-2025-38416/ANY/0001.patch
CVE-2025-38420/ANY/0001.patch
CVE-2025-38428/ANY/0001.patch
CVE-2025-38445/ANY/0001.patch
CVE-2025-38448/ANY/0001.patch
CVE-2025-38458/ANY/0001.patch
CVE-2025-38459/ANY/0001.patch
CVE-2025-38460/ANY/0001.patch
CVE-2025-38467/ANY/0001.patch
CVE-2025-38468/ANY/0001.patch
CVE-2025-38470/ANY/0001.patch
CVE-2025-38473/ANY/0001.patch
CVE-2025-38474/ANY/0001.patch
CVE-2025-38495/ANY/0001.patch
CVE-2025-38498/ANY/0002.patch
CVE-2025-38513/ANY/0001.patch
CVE-2025-38514/ANY/0001.patch
CVE-2025-38538/ANY/0001.patch
CVE-2025-38542/ANY/0001.patch
CVE-2025-38544/ANY/0001.patch
CVE-2025-38546/ANY/0001.patch
CVE-2025-38555/ANY/0001.patch
CVE-2025-38574/ANY/0001.patch
CVE-2025-38578/ANY/0001.patch
CVE-2025-38581/ANY/0001.patch
CVE-2025-38604/ANY/0001.patch
CVE-2025-38611/ANY/0001.patch
CVE-2025-38612/ANY/0001.patch
CVE-2025-38618/ANY/0001.patch
CVE-2025-38639/ANY/0001.patch
CVE-2025-38691/ANY/0001.patch
CVE-2025-38693/ANY/0001.patch
CVE-2025-38694/ANY/0001.patch
CVE-2025-38697/ANY/0001.patch
CVE-2025-38698/ANY/0001.patch
CVE-2025-38699/ANY/0001.patch
CVE-2025-38701/ANY/0001.patch
CVE-2025-38708/ANY/0001.patch
CVE-2025-38712/ANY/0001.patch
CVE-2025-38713/ANY/0001.patch
CVE-2025-38717/ANY/0001.patch
CVE-2025-39676/ANY/0001.patch
CVE-2025-39691/ANY/0001.patch
CVE-2025-39710/ANY/0001.patch
CVE-2025-39714/ANY/0001.patch
CVE-2025-39742/ANY/0001.patch
CVE-2025-39743/ANY/0001.patch
CVE-2025-39751/ANY/0001.patch
CVE-2025-39756/ANY/0001.patch
CVE-2025-39782/ANY/0001.patch
CVE-2025-39794/ANY/0001.patch
CVE-2025-39796/ANY/0001.patch
CVE-2025-39808/ANY/0001.patch
CVE-2025-39812/ANY/0001.patch
CVE-2025-39817/ANY/0001.patch
CVE-2025-39824/ANY/0001.patch
CVE-2025-39839/ANY/0001.patch
CVE-2025-39846/ANY/0001.patch
CVE-2025-39847/ANY/0001.patch
CVE-2025-39848/ANY/0001.patch
CVE-2025-39874/ANY/0001.patch
CVE-2025-39885/ANY/0001.patch
CVE-2025-39889/ANY/0001.patch
CVE-2025-39898/ANY/0001.patch
CVE-2025-39903/ANY/0001.patch
CVE-2025-39913/ANY/0001.patch
CVE-2025-39920/ANY/0001.patch
CVE-2025-39945/ANY/0001.patch
CVE-2025-39964/ANY/0001.patch
CVE-2025-39967/ANY/0001.patch
CVE-2025-39973/ANY/0001.patch
CVE-2025-39996/ANY/0001.patch
CVE-2025-39998/ANY/0001.patch
CVE-2025-40011/ANY/0001.patch
CVE-2025-40020/ANY/0001.patch
CVE-2025-40022/ANY/0001.patch
CVE-2025-40028/ANY/0001.patch
CVE-2025-40030/ANY/0001.patch
CVE-2025-40035/ANY/0001.patch
CVE-2025-40044/ANY/0001.patch
CVE-2025-40049/ANY/0001.patch
CVE-2025-40055/ANY/0001.patch
CVE-2025-40078/ANY/0001.patch
CVE-2025-40080/ANY/0001.patch
CVE-2025-40082/ANY/0001.patch
CVE-2019-12819/4.14/0006.patch
CVE-2021-47472/4.14/0003.patch
CVE-2023-53129/ANY/0001.patch
CVE-2023-53626/ANY/0001.patch
CVE-2024-26720/4.14/0009.patch
CVE-2024-39501/4.14/0009.patch
CVE-2024-42102/4.14/0009.patch
CVE-2024-50195/3.17-^6.12/0001.patch
CVE-2024-50210/3.17-^6.6/0001.patch
@@ -0,0 +1,27 @@
--- a/techpack/audio/dsp/rtac.c
+++ b/techpack/audio/dsp/rtac.c
@@ -652,6 +652,12 @@
pr_debug("%s\n", __func__);
mutex_lock(&rtac_voice_mutex);
+ if (rtac_voice_data.num_of_voice_combos > ARRAY_SIZE(rtac_voice_data.voice)) {
+ pr_err("%s: invalid voice count %u\n", __func__,
+ rtac_voice_data.num_of_voice_combos);
+ mutex_unlock(&rtac_voice_mutex);
+ return;
+ }
/* look for device */
for (i = 0; i < rtac_voice_data.num_of_voice_combos; i++) {
if (rtac_voice_data.voice[i].cvs_handle == cvs_handle) {
--- a/drivers/staging/qcacld-3.0/core/mac/src/pe/lim/lim_process_fils.c
+++ b/drivers/staging/qcacld-3.0/core/mac/src/pe/lim/lim_process_fils.c
@@ -1092,6 +1092,9 @@
return false;
}
+ if (dot11f_ie_rsn.pmkid_count > ARRAY_SIZE(dot11f_ie_rsn.pmkid))
+ return false;
+
for (i = 0; i < dot11f_ie_rsn.pmkid_count; i++) {
if (qdf_mem_cmp(dot11f_ie_rsn.pmkid[i],
pe_session->fils_info->fils_pmkid,
@@ -0,0 +1,36 @@
# FORTIFY Clang port for msm-4.14 (LOS sunfish)
Based on Kees Cook *fortify: Add Clang support* (upstream ~2022), adapted
to 4.14’s in-`string.h` FORTIFY (no `fortify-string.h` yet).
**Not** AXP `0004` (strict-string). **Not** `BUG()` link stubs.
See `docs/009-fortify-clang-port.md`.
## Apply
```bash
# on rom-dev01, after git reset of msm-4.14:
python3 apply_fortify_clang.py /path/to/msm-4.14
patch -p1 -d /path/to/msm-4.14 < 0001-driver-bounds-rtac-fils.patch
```
`ksync-one.sh` with `CONFIG_FORTIFY_SOURCE` runs both automatically.
Then enable `CONFIG_FORTIFY_SOURCE=y` and build **without**
`ALLOW_FORTIFY_BUG_STUBS`.
## Nested strlen (required)
With Clang `__pass_object_size`, fortified `strlcpy`/`strcpy` must call
`__underlying_strlen(q)`, not fortified `strlen(q)`. Otherwise a known
source object size makes `strlen` panic at boot (LAB: `strlen+strlcpy`
fail; `strlen+strncpy` OK). `apply_fortify_clang.py` rewrites both.
## Diag capture (v4)
`apply_fortify_diag.py` — `early_ioremap` before `parse_early_param`, ordinary
`ioremap` only after `mm_init`, never map from the failure handler; failure
and milestone zones separated. See `docs/009-fortify-diag-capture-plan.md`
and `docs/009-fortify-diag-v3-review-20260927.md`. Control:
`PSTORE_ALT_PLAIN=1` / `scripts/009-bisect-ksync-pstore-alt-plain.sh`.
@@ -0,0 +1,244 @@
#!/usr/bin/env python3
"""Apply minimal Clang FORTIFY adaptations to msm-4.14 (Kees-style).
Edits:
- include/linux/compiler-clang.h — __pass_object_size / __overloadable / __diagnose_as
- include/linux/string.h — __FORTIFY_INLINE + POS/POS0 on fortified params
- security/Kconfig — allow FORTIFY on Clang when this port is present
(tree lacks CC_IS_CLANG Kconfig symbols; !CC_IS_CLANG was a no-op)
Idempotent. Exit 0 on success.
"""
from __future__ import annotations
import re
import sys
from pathlib import Path
MARKER = "/* AXP_Resurection: fortify-clang port (Kees-style) */"
def patch_compiler_clang(path: Path) -> None:
t = path.read_text()
if MARKER in t and "__pass_object_size" in t:
print(f"skip {path} (already patched)")
return
if "__pass_object_size" in t:
print(f"skip {path} (attrs already present)")
return
block = f"""
{MARKER}
/*
* Clang FORTIFY helpers (upstream fortify Clang support / Kees Cook).
* pass_object_size makes __builtin_object_size work through fortified inlines.
*/
#if __has_attribute(pass_object_size)
# define __pass_object_size(type) __attribute__((__pass_object_size__(type)))
#else
# define __pass_object_size(type)
#endif
#if __has_attribute(overloadable)
# define __overloadable __attribute__((__overloadable__))
#else
# define __overloadable
#endif
#if __has_attribute(diagnose_as_builtin)
# define __diagnose_as(builtin...) __attribute__((__diagnose_as_builtin__(builtin)))
#else
# define __diagnose_as(builtin...)
#endif
"""
path.write_text(t.rstrip() + "\n" + block + "\n")
print(f"patched {path}")
def patch_kconfig(path: Path) -> None:
t = path.read_text()
old = (
"\t# https://bugs.llvm.org/show_bug.cgi?id=50322\n"
"\t# https://bugs.llvm.org/show_bug.cgi?id=41459\n"
"\tdepends on !CC_IS_CLANG\n"
)
new = (
"\t# Clang: upstream disabled FORTIFY until wrappers existed (LLVM 41459).\n"
"\t# This tree never defined CC_IS_CLANG, so !CC_IS_CLANG was a no-op.\n"
"\t# Fortify-clang port (vendor/.../fortify-clang) supplies Kees-style\n"
"\t# __pass_object_size / __overloadable wrappers for Clang 12+.\n"
"\t# https://bugs.llvm.org/show_bug.cgi?id=41459\n"
)
if MARKER.split()[2] in t and "Fortify-clang port" in t:
print(f"skip {path} (already patched)")
return
if old not in t:
if "depends on !CC_IS_CLANG" in t:
t2 = t.replace(
"\tdepends on !CC_IS_CLANG\n",
new,
1,
)
if t2 == t:
raise SystemExit(f"could not patch {path}")
path.write_text(t2)
print(f"patched {path} (depends line only)")
return
raise SystemExit(f"FORTIFY depends block not found in {path}")
path.write_text(t.replace(old, new, 1))
print(f"patched {path}")
def patch_string_h(path: Path) -> None:
t = path.read_text()
if "AXP_Resurection: fortify-clang" in t and "POS0" in t:
print(f"skip {path} (already patched)")
return
old_inline = (
"#define __FORTIFY_INLINE extern __always_inline __attribute__((gnu_inline))\n"
)
# 4.14 fortify bodies all use __builtin_object_size(*, 0) (whole object).
# pass_object_size(N) must match that N or Clang returns -1 (no checking).
# Do NOT use pass_object_size(1) here — that is STRICT_STRING / type-1 policy
# (AXP 0004), a separate step. See docs/009-fortify-port-review-20260926.md.
new_inline = (
f"{MARKER}\n"
"/* Clang: __overloadable + __pass_object_size matching bos type 0. */\n"
"#ifdef __clang__\n"
"# define __FORTIFY_INLINE extern __always_inline __attribute__((gnu_inline)) __overloadable\n"
"# define POS __pass_object_size(0)\n"
"# define POS0 __pass_object_size(0)\n"
"#else\n"
"# define __FORTIFY_INLINE extern __always_inline __attribute__((gnu_inline))\n"
"# define POS\n"
"# define POS0\n"
"#endif\n"
)
if old_inline not in t:
raise SystemExit("__FORTIFY_INLINE define not found")
t = t.replace(old_inline, new_inline, 1)
# Rewrite fortified prototypes to pass object size (Kees-style POS/POS0).
replacements = [
(
"__FORTIFY_INLINE char *strncpy(char *p, const char *q, __kernel_size_t size)",
"__FORTIFY_INLINE char *strncpy(char * const POS0 p, const char * const POS q, __kernel_size_t size)",
),
(
"__FORTIFY_INLINE char *strcat(char *p, const char *q)",
"__FORTIFY_INLINE char *strcat(char * const POS0 p, const char * const POS q)",
),
(
"__FORTIFY_INLINE __kernel_size_t strlen(const char *p)",
"__FORTIFY_INLINE __kernel_size_t strlen(const char * const POS p)",
),
(
"__FORTIFY_INLINE __kernel_size_t strnlen(const char *p, __kernel_size_t maxlen)",
"__FORTIFY_INLINE __kernel_size_t strnlen(const char * const POS p, __kernel_size_t maxlen)",
),
(
"__FORTIFY_INLINE size_t strlcpy(char *p, const char *q, size_t size)",
"__FORTIFY_INLINE size_t strlcpy(char * const POS0 p, const char * const POS q, size_t size)",
),
(
"__FORTIFY_INLINE char *strncat(char *p, const char *q, __kernel_size_t count)",
"__FORTIFY_INLINE char *strncat(char * const POS0 p, const char * const POS q, __kernel_size_t count)",
),
(
"__FORTIFY_INLINE void *memset(void *p, int c, __kernel_size_t size)",
"__FORTIFY_INLINE void *memset(void * const POS0 p, int c, __kernel_size_t size)",
),
(
"__FORTIFY_INLINE void *memcpy(void *p, const void *q, __kernel_size_t size)",
"__FORTIFY_INLINE void *memcpy(void * const POS0 p, const void * const POS0 q, __kernel_size_t size)",
),
(
"__FORTIFY_INLINE void *memmove(void *p, const void *q, __kernel_size_t size)",
"__FORTIFY_INLINE void *memmove(void * const POS0 p, const void * const POS0 q, __kernel_size_t size)",
),
(
"__FORTIFY_INLINE void *memscan(void *p, int c, __kernel_size_t size)",
"__FORTIFY_INLINE void *memscan(void * const POS0 p, int c, __kernel_size_t size)",
),
(
"__FORTIFY_INLINE int memcmp(const void *p, const void *q, __kernel_size_t size)",
"__FORTIFY_INLINE int memcmp(const void * const POS0 p, const void * const POS0 q, __kernel_size_t size)",
),
(
"__FORTIFY_INLINE void *memchr(const void *p, int c, __kernel_size_t size)",
"__FORTIFY_INLINE void *memchr(const void * const POS0 p, int c, __kernel_size_t size)",
),
(
"__FORTIFY_INLINE void *memchr_inv(const void *p, int c, size_t size)",
"__FORTIFY_INLINE void *memchr_inv(const void * const POS0 p, int c, size_t size)",
),
(
"__FORTIFY_INLINE void *kmemdup(const void *p, size_t size, gfp_t gfp)",
"__FORTIFY_INLINE void *kmemdup(const void * const POS0 p, size_t size, gfp_t gfp)",
),
(
"__FORTIFY_INLINE char *strcpy(char *p, const char *q)",
"__FORTIFY_INLINE char *strcpy(char * const POS0 p, const char * const POS q)",
),
]
for a, b in replacements:
if a not in t:
raise SystemExit(f"missing fortify prototype:\n{a}")
t = t.replace(a, b, 1)
# With Clang __pass_object_size, fortified strlen(q) sees a known object
# size and panics when the C string is not NUL-terminated within that
# bound. strlcpy/strcpy intentionally need the unbounded source length
# (same as the GCC path when bos was usually -1). Use the underlying
# strlen so enabling both wrappers does not brick boot.
# LAB bisect 2026-09-28: strlen+strlcpy fails; strlen+strncpy boots.
old_strlcpy_len = "\tret = strlen(q);\n"
new_strlcpy_len = (
"\t/* AXP_Resurection: fortify-clang — do not nest fortified strlen */\n"
"\tret = __underlying_strlen(q);\n"
)
if "ret = __underlying_strlen(q);" not in t:
if old_strlcpy_len not in t:
raise SystemExit("strlcpy strlen(q) probe not found")
t = t.replace(old_strlcpy_len, new_strlcpy_len, 1)
old_strcpy_len = "\tmemcpy(p, q, strlen(q) + 1);\n"
new_strcpy_len = (
"\tmemcpy(p, q, __underlying_strlen(q) + 1);\n"
)
if "memcpy(p, q, __underlying_strlen(q) + 1);" not in t:
if old_strcpy_len not in t:
raise SystemExit("strcpy strlen(q) probe not found")
t = t.replace(old_strcpy_len, new_strcpy_len, 1)
# Undef POS macros at end of fortify block (before #endif of FORTIFY_SOURCE)
end_marker = (
"#undef __underlying_strncpy\n"
"#endif\n"
)
end_repl = (
"#undef __underlying_strncpy\n"
"#undef POS\n"
"#undef POS0\n"
"#endif\n"
)
if end_marker not in t:
raise SystemExit("fortify #endif marker not found")
t = t.replace(end_marker, end_repl, 1)
path.write_text(t)
print(f"patched {path}")
def main() -> int:
if len(sys.argv) != 2:
print(f"usage: {sys.argv[0]} /path/to/msm-4.14", file=sys.stderr)
return 2
root = Path(sys.argv[1])
patch_compiler_clang(root / "include/linux/compiler-clang.h")
patch_string_h(root / "include/linux/string.h")
patch_kconfig(root / "security/Kconfig")
print("fortify-clang apply OK")
return 0
if __name__ == "__main__":
raise SystemExit(main())
@@ -0,0 +1,597 @@
#!/usr/bin/env python3
"""Diagnostic overlays for FORTIFY / early boot capture (msm-4.14 sunfish LAB).
v4 — docs/009-fortify-diag-v3-review-20260927.md:
- Never map from the failure handler.
- Early map: early_ioremap (FIXMAP_PAGE_IO) before setup_arch
parse_early_param — same device attrs as permanent/access-ramoops.
- Keep early map until after mm_init; ordinary ioremap only then
(needs slab/vmalloc). Clear VA before retiring early map.
- First-failure at offset 0; milestones at offset 2048 (no shared slots).
- Adopt prior failure only if a complete record (header + \\n + mirror).
- Atomic claim for first-failure; milestones never touch failure zone.
Readable: dd if=/dev/access-ramoops | strings | grep AXPDIAG
Idempotent via markers. Attempt id is bake-time only; wipe failure zone
before repeating the same image (see capture plan).
"""
from __future__ import annotations
import re
import sys
import time
from pathlib import Path
MARKER_PANIC = "/* AXP_Resurection: fortify-diag capture v4 */"
MARKER_MAIN_MM = "/* AXP_Resurection: axp-diag mm_init */"
MARKER_SETUP_EARLY = "/* AXP_Resurection: axp-diag early_map */"
MARKER_MAKEFILE = "AXP_Resurection axp_diag_capture"
ATTEMPT = time.strftime("%Y%m%dT%H%M%SZ", time.gmtime())
# Sunfish DT: alt_ramoops_region@A4C1F000 size 0x400000 (no-map).
SUNFISH_ALT_PHYS = "0xA4C1F000ULL"
CAPTURE_C = r"""
/* AXP_Resurection: axp_diag_capture — LAB early plaintext alt ramoops (v4) */
#include <linux/kernel.h>
#include <linux/io.h>
#include <linux/init.h>
#include <linux/export.h>
#include <linux/notifier.h>
#include <linux/atomic.h>
#include <linux/types.h>
#include <linux/mm.h>
#include <asm/bug.h>
#include <asm/early_ioremap.h>
#define AXP_ALT_PHYS __SUNFISH_ALT_PHYS__
#define AXP_MAP_SIZE PAGE_SIZE
#define AXP_ATTEMPT "__ATTEMPT__"
/* Layout within the first mapped page (no shared slots). */
#define AXP_FAIL_OFF 0U
#define AXP_FAIL_MIRROR 128U
#define AXP_FAIL_SPAN 1024U /* primary + mirrors */
#define AXP_MILE_OFF 2048U
#define AXP_REC_MAX 120U
static void __iomem *axp_alt_va;
static bool axp_va_is_early;
static atomic_t axp_first_latch = ATOMIC_INIT(0);
static void notrace axp_bytes_out(void __iomem *dst, const char *src, size_t n)
{
size_t i;
for (i = 0; i < n; i++)
writeb((u8)src[i], dst + i);
}
static void notrace axp_bytes_in(char *dst, const void __iomem *src, size_t n)
{
size_t i;
for (i = 0; i < n; i++)
dst[i] = (char)readb(src + i);
}
static void axp_hex_u64(char *dst, unsigned long v)
{
static const char hex[] = "0123456789abcdef";
int i;
dst[0] = '0';
dst[1] = 'x';
for (i = 0; i < 16; i++)
dst[2 + i] = hex[(v >> (60 - 4 * i)) & 0xf];
dst[18] = '\0';
}
/*
* Complete first-failure: AXPDIAG1,...\n at FAIL_OFF and matching mirror.
* A truncated header alone must NOT suppress later captures.
*/
static bool notrace axp_first_complete(void)
{
char buf[AXP_REC_MAX];
char mir[AXP_REC_MAX];
size_t i, n;
if (!axp_alt_va)
return false;
axp_bytes_in(buf, axp_alt_va + AXP_FAIL_OFF, AXP_REC_MAX);
if (buf[0] != 'A' || buf[1] != 'X' || buf[2] != 'P' || buf[3] != 'D' ||
buf[4] != 'I' || buf[5] != 'A' || buf[6] != 'G' || buf[7] != '1' ||
buf[8] != ',')
return false;
n = 0;
for (i = 9; i < AXP_REC_MAX; i++) {
if (buf[i] == '\n') {
n = i + 1;
break;
}
}
if (!n)
return false;
axp_bytes_in(mir, axp_alt_va + AXP_FAIL_MIRROR, n);
for (i = 0; i < n; i++) {
if (mir[i] != buf[i])
return false;
}
return true;
}
static void notrace axp_adopt_prior_first(void)
{
if (axp_first_complete())
atomic_set(&axp_first_latch, 1);
}
/* Failure-zone write: mirrors first, primary last (commit). */
static void notrace axp_fail_commit(const char *rec, size_t n)
{
size_t i;
if (!axp_alt_va || !rec || !n)
return;
if (n > AXP_REC_MAX)
n = AXP_REC_MAX;
for (i = AXP_FAIL_MIRROR; i + n <= AXP_FAIL_SPAN; i += AXP_FAIL_MIRROR)
axp_bytes_out(axp_alt_va + i, rec, n);
wmb();
axp_bytes_out(axp_alt_va + AXP_FAIL_OFF, rec, n);
wmb();
(void)readb(axp_alt_va + AXP_FAIL_OFF);
}
static void notrace axp_mile_write(const char *rec, size_t n)
{
if (!axp_alt_va || !rec || !n)
return;
if (n > AXP_REC_MAX)
n = AXP_REC_MAX;
if (AXP_MILE_OFF + n > AXP_MAP_SIZE)
return;
axp_bytes_out(axp_alt_va + AXP_MILE_OFF, rec, n);
wmb();
(void)readb(axp_alt_va + AXP_MILE_OFF);
}
/*
* First durable failure. Format:
* AXPDIAG1,<type>,<attempt>,<caller_hex>,<token>\n
* Never maps. Null VA => lost (blind / transition window).
*/
void notrace __attribute__((no_sanitize("cfi")))
axp_diag_mark_event(char type, const char *token, void *caller)
{
char rec[128];
char hex[20];
size_t n = 0;
size_t ti;
const char *tok;
void __iomem *va = READ_ONCE(axp_alt_va);
if (!va)
return;
if (atomic_read(&axp_first_latch))
return;
if (axp_first_complete()) {
atomic_set(&axp_first_latch, 1);
return;
}
if (atomic_cmpxchg(&axp_first_latch, 0, 1) != 0)
return;
/* Re-check after claim (prior complete may have raced). */
if (axp_first_complete())
return;
axp_hex_u64(hex, (unsigned long)caller);
tok = token ? token : "?";
{
static const char pfx[] = "AXPDIAG1,";
size_t i;
for (i = 0; i < sizeof(pfx) - 1; i++)
rec[n++] = pfx[i];
}
rec[n++] = type;
rec[n++] = ',';
{
size_t i;
for (i = 0; AXP_ATTEMPT[i] && n + 1 < sizeof(rec); i++)
rec[n++] = AXP_ATTEMPT[i];
}
rec[n++] = ',';
{
size_t i;
for (i = 0; i < 18 && n + 1 < sizeof(rec); i++)
rec[n++] = hex[i];
}
rec[n++] = ',';
for (ti = 0; tok[ti] && n + 1 < sizeof(rec); ti++)
rec[n++] = tok[ti];
rec[n++] = '\n';
{
int k;
for (k = 0; k < 4; k++)
axp_fail_commit(rec, n);
}
}
EXPORT_SYMBOL_GPL(axp_diag_mark_event);
void notrace __attribute__((no_sanitize("cfi")))
axp_diag_mark_panic(const char *why)
{
axp_diag_mark_event('P', why, __builtin_return_address(0));
}
EXPORT_SYMBOL_GPL(axp_diag_mark_panic);
/* Milestones: separate offset; never touch failure zone. */
void notrace __attribute__((no_sanitize("cfi")))
axp_diag_milestone(const char *name)
{
char rec[96];
size_t n = 0;
size_t i;
static const char pfx[] = "AXPDIAG0,M,";
void __iomem *va = READ_ONCE(axp_alt_va);
if (!va)
return;
if (atomic_read(&axp_first_latch) || axp_first_complete()) {
axp_adopt_prior_first();
return;
}
for (i = 0; i < sizeof(pfx) - 1; i++)
rec[n++] = pfx[i];
for (i = 0; AXP_ATTEMPT[i] && n + 1 < sizeof(rec); i++)
rec[n++] = AXP_ATTEMPT[i];
rec[n++] = ',';
if (!name)
name = "?";
for (i = 0; name[i] && n + 1 < sizeof(rec); i++)
rec[n++] = name[i];
rec[n++] = '\n';
/* Abort if a first-failure claimed while we composed. */
if (atomic_read(&axp_first_latch) || axp_first_complete()) {
axp_adopt_prior_first();
return;
}
axp_mile_write(rec, n);
}
EXPORT_SYMBOL_GPL(axp_diag_milestone);
/*
* Early: early_ioremap (device/IO attrs), before parse_early_param.
* Kept across early_ioremap_reset until mm_init retires it.
* Permanent: ordinary ioremap ONLY after mm_init (slab + vmalloc ready).
* Failure handlers never call these.
*/
void __init axp_diag_map_early(void)
{
void __iomem *va;
if (axp_alt_va)
return;
/* FIXMAP_PAGE_IO — matches permanent ioremap / access-ramoops attrs. */
va = early_ioremap(AXP_ALT_PHYS, AXP_MAP_SIZE);
if (!va)
return;
WRITE_ONCE(axp_alt_va, va);
axp_va_is_early = true;
axp_adopt_prior_first();
if (!atomic_read(&axp_first_latch))
axp_diag_milestone("early_map");
}
void __init axp_diag_map_permanent(void)
{
void __iomem *va;
void __iomem *old;
/*
* Ordinary ioremap needs get_vm_area → kzalloc / vmalloc.
* Call only after mm_init(). Never from setup_arch/paging_init.
*/
va = ioremap(AXP_ALT_PHYS, AXP_MAP_SIZE);
if (!va)
return;
old = READ_ONCE(axp_alt_va);
/* Publish permanent first so writers never see a stale early VA. */
WRITE_ONCE(axp_alt_va, va);
wmb();
if (axp_va_is_early && old) {
early_iounmap(old, AXP_MAP_SIZE);
axp_va_is_early = false;
} else if (old && old != va) {
iounmap(old);
}
axp_adopt_prior_first();
if (!atomic_read(&axp_first_latch))
axp_diag_milestone("perm_map");
}
void __init axp_diag_after_mm_init(void)
{
axp_diag_map_permanent();
if (!atomic_read(&axp_first_latch))
axp_diag_milestone("mm_init");
}
static int __init axp_diag_pure_init(void)
{
if (!READ_ONCE(axp_alt_va))
axp_diag_map_permanent();
if (!atomic_read(&axp_first_latch))
axp_diag_milestone("pure_init");
return 0;
}
pure_initcall(axp_diag_pure_init);
static int __init axp_diag_core_init(void)
{
if (!atomic_read(&axp_first_latch))
axp_diag_milestone("core_init");
return 0;
}
core_initcall(axp_diag_core_init);
static int notrace axp_panic_notifier(struct notifier_block *nb,
unsigned long action, void *data)
{
axp_diag_mark_event('P', data ? (const char *)data : "notifier",
__builtin_return_address(0));
return NOTIFY_OK;
}
static struct notifier_block axp_panic_nb = {
.notifier_call = axp_panic_notifier,
.priority = INT_MAX,
};
static int __init axp_diag_panic_reg(void)
{
atomic_notifier_chain_register(&panic_notifier_list, &axp_panic_nb);
if (!atomic_read(&axp_first_latch))
axp_diag_milestone("panic_reg");
return 0;
}
postcore_initcall(axp_diag_panic_reg);
"""
def write_capture_c(root: Path) -> None:
path = root / "kernel" / "axp_diag_capture.c"
body = (
CAPTURE_C.replace("__SUNFISH_ALT_PHYS__", SUNFISH_ALT_PHYS)
.replace("__ATTEMPT__", ATTEMPT)
)
if body.startswith("\n"):
body = body[1:]
path.write_text(body)
print(f"wrote {path} attempt={ATTEMPT}")
def patch_makefile(path: Path) -> None:
t = path.read_text()
if "axp_diag_capture.o" in t:
print(f"skip {path} (axp_diag_capture already listed)")
return
old = "obj-y = fork.o exec_domain.o panic.o \\"
new = f"obj-y = fork.o exec_domain.o panic.o axp_diag_capture.o \\" # {MARKER_MAKEFILE}
if old not in t:
raise SystemExit(f"kernel/Makefile obj-y panic.o line not found in {path}")
path.write_text(t.replace(old, new, 1))
print(f"patched {path}")
def patch_main_mm(path: Path) -> None:
t = path.read_text()
if "axp_diag_after_mm_init" in t:
print(f"skip {path} (already patched)")
return
old = "\tmm_init();\n"
if t.count(old) < 1:
raise SystemExit(f"mm_init(); not found in {path}")
new = f"""\tmm_init();
{MARKER_MAIN_MM}
{{
extern void axp_diag_after_mm_init(void);
axp_diag_after_mm_init();
}}
"""
path.write_text(t.replace(old, new, 1))
print(f"patched mm_init hook in {path}")
def patch_arm64_setup(path: Path) -> None:
"""Early IO map only — no ioremap before mm_init."""
t = path.read_text()
# Strip obsolete v3 permanent hook after paging_init if present.
perm_block = re.compile(
r"\tpaging_init\(\);\n"
r"/\* AXP_Resurection: axp-diag perm_map \*/\n"
r"\t\{\n"
r"\t\textern void axp_diag_map_permanent\(void\);\n"
r"\t\taxp_diag_map_permanent\(\);\n"
r"\t\}\n",
)
t2, n = perm_block.subn("\tpaging_init();\n", t, count=1)
if n:
t = t2
print(f"removed obsolete paging_init ioremap hook from {path}")
if "axp_diag_map_early" in t:
path.write_text(t)
print(f"skip early hook in {path} (already present)")
return
early_old = "\tjump_label_init();\n\tparse_early_param();\n"
early_new = f"""\tjump_label_init();
{MARKER_SETUP_EARLY}
{{
extern void axp_diag_map_early(void);
axp_diag_map_early();
}}
parse_early_param();
"""
if early_old not in t:
raise SystemExit(f"jump_label_init/parse_early_param block not found in {path}")
path.write_text(t.replace(early_old, early_new, 1))
print(f"patched arm64 setup early_ioremap in {path}")
def _replace_fortify_panic(t: str) -> str:
if "fortify-diag capture v4" in t:
return t
new = f"""{MARKER_PANIC}
extern void axp_diag_mark_event(char type, const char *token, void *caller);
void fortify_panic(const char *name)
{{
void *caller = __builtin_return_address(0);
/* Durable record FIRST — before printk/stack (may fault). Never maps. */
axp_diag_mark_event('F', name, caller);
pr_emerg("FORTIFY_DIAG: overflow in %s caller=%pS attempt=%s\\n",
name, caller, "{ATTEMPT}");
dump_stack();
BUG();
}}
"""
stock = """void fortify_panic(const char *name)
{
pr_emerg("detected buffer overflow in %s\\n", name);
BUG();
}
"""
if "AXP_Resurection: fortify-diag capture" in t:
pat = re.compile(
r"/\* AXP_Resurection: fortify-diag capture(?: v[0-9]+)? \*/.*?^void fortify_panic\(const char \*name\)\n\{.*?\n\}\n",
re.S | re.M,
)
m = pat.search(t)
if m:
return t[: m.start()] + new + t[m.end() :]
if stock in t:
return t.replace(stock, new, 1)
raise SystemExit("fortify_panic body not found / unrecognized")
def patch_fortify_panic(path: Path) -> None:
t = path.read_text()
if "fortify-diag capture v4" in t:
print(f"skip {path} (already v4)")
return
path.write_text(_replace_fortify_panic(t))
print(f"patched fortify_panic v4 in {path}")
def patch_sysrq(path: Path) -> None:
t = path.read_text()
if "axp-diag-sysrq-v4" in t:
print(f"skip {path} (already v4)")
return
if "sysrq_handle_crash" not in t:
raise SystemExit(f"sysrq_handle_crash missing in {path}")
new_crash = """/* AXP_Resurection: axp-diag-sysrq-v4 */
extern void axp_diag_mark_event(char type, const char *token, void *caller);
static void sysrq_handle_crash(int key)
{
rcu_read_unlock();
axp_diag_mark_event('C', "sysrq-c", __builtin_return_address(0));
panic("sysrq triggered crash\\n");
}
static void sysrq_handle_axp_mark(int key)
{
axp_diag_mark_event('X', "sysrq-x", __builtin_return_address(0));
}
static struct sysrq_key_op sysrq_axp_mark_op = {
.handler = sysrq_handle_axp_mark,
.help_msg = "axp-mark(x)",
.action_msg = "AXP alt diag mark",
.enable_mask = SYSRQ_ENABLE_DUMP,
};
"""
if "AXP_Resurection: axp-diag-sysrq" in t or "pstore-alt-plain-sysrq" in t:
pat = re.compile(
r"/\* AXP_Resurection: (?:axp-diag-sysrq-v[0-9]+|pstore-alt-plain-sysrq) \*/.*?"
r"(?:static struct sysrq_key_op sysrq_axp_mark_op = \{.*?\};\n|"
r"panic\(\"sysrq triggered crash\\n\"\);\n\})",
re.S,
)
m = pat.search(t)
if m:
t = t[: m.start()] + new_crash + t[m.end() :]
else:
raise SystemExit(f"could not replace prior sysrq axp block in {path}")
else:
stock = """static void sysrq_handle_crash(int key)
{
/* release the RCU read lock before crashing */
rcu_read_unlock();
panic("sysrq triggered crash\\n");
}
"""
if stock not in t:
raise SystemExit(f"unrecognized sysrq_handle_crash form in {path}")
t = t.replace(stock, new_crash, 1)
if "axp_sysrq_mark_init" not in t:
t += """
/* AXP_Resurection: axp-diag-sysrq-v4-reg */
static int __init axp_sysrq_mark_init(void)
{
register_sysrq_key('x', &sysrq_axp_mark_op);
return 0;
}
device_initcall(axp_sysrq_mark_init);
"""
else:
t = re.sub(
r"axp-diag-sysrq-v[0-9]+-reg",
"axp-diag-sysrq-v4-reg",
t,
count=1,
)
path.write_text(t)
print(f"patched sysrq v4 in {path}")
def main() -> int:
if len(sys.argv) != 2:
print(f"usage: {sys.argv[0]} /path/to/msm-4.14", file=sys.stderr)
return 2
root = Path(sys.argv[1])
write_capture_c(root)
patch_makefile(root / "kernel" / "Makefile")
patch_arm64_setup(root / "arch" / "arm64" / "kernel" / "setup.c")
patch_main_mm(root / "init" / "main.c")
patch_fortify_panic(root / "lib" / "string.c")
patch_sysrq(root / "drivers" / "tty" / "sysrq.c")
print(f"fortify-diag v4 apply OK attempt={ATTEMPT}")
return 0
if __name__ == "__main__":
raise SystemExit(main())
@@ -0,0 +1,33 @@
# Stage 1 — AXP Graphene/AH patches that apply clean on LOS msm-4.14 @ 28f9290ae067
# Paths relative to /srv/rom/references/axp/kernel_patches
# Source attribution: AXP/Divest kernel_patches @ df3cab2155b3 (GrapheneOS-derived series)
0005-Graphene-Deny_USB/4.14/0003.patch
0008-Graphene-Kernel_Hardening-allocsize/4.14/0002.patch
0008-Graphene-Kernel_Hardening-allocsize/4.14/0011.patch
0008-Graphene-Kernel_Hardening-allocsize/4.14/0016.patch
0008-Graphene-Kernel_Hardening-allocsize/4.14/0021.patch
0008-Graphene-Kernel_Hardening-bugon/4.14/0010.patch
0008-Graphene-Kernel_Hardening-fortify/4.14/0004.patch
0008-Graphene-Kernel_Hardening-misc/4.14/0001.patch
0008-Graphene-Kernel_Hardening-misc/4.14/0005.patch
0008-Graphene-Kernel_Hardening-misc/4.14/0010.patch
0008-Graphene-Kernel_Hardening-misc/4.14/0018.patch
0008-Graphene-Kernel_Hardening-random/4.14/0002.patch
0008-Graphene-Kernel_Hardening-random/4.14/0007.patch
0008-Graphene-Kernel_Hardening-random/4.14/0012.patch
0008-Graphene-Kernel_Hardening-random/4.14/0017.patch
0008-Graphene-Kernel_Hardening-ro/4.14/0002.patch
0008-Graphene-Kernel_Hardening-ro/4.14/0012.patch
0008-Graphene-Kernel_Hardening-ro/4.14/0017.patch
0008-Graphene-Kernel_Hardening-ro/4.14/0028.patch
0008-Graphene-Kernel_Hardening-ro/4.14/0030.patch
0008-Graphene-Kernel_Hardening-ro/4.14/0032.patch
0008-Graphene-Kernel_Hardening-ro/4.14/0038.patch
0008-Graphene-Kernel_Hardening-sanitize/4.14/0005.patch
0008-Graphene-Kernel_Hardening-sanitize/4.14/0009.patch
0008-Graphene-Kernel_Hardening-sanitize/4.14/0015.patch
0008-Graphene-Kernel_Hardening-sanitize/4.14/0017.patch
0008-Graphene-Kernel_Hardening-slab/4.14/0006.patch
0008-Graphene-Kernel_Hardening-slab/4.14/0014.patch
0008-Graphene-Kernel_Hardening-unused/4.14/0001.patch
0008-Graphene-Kernel_Hardening-unused/4.14/0002.patch
@@ -0,0 +1,42 @@
# US-S5-1 — Yama + SLAB freelist random (defconfig)
**Track**: AXP Resurection Pro Magisk, unlocked sunfish.
**On top of**: Stage1 + combo4 + FORTIFY + CVE clean-429 + hi-batch1–3.
## Why
High-offset KEEP CVEs are already on the ship pack. Remaining ge200 KEPT
items were **nf_tables** (`CVE-2023-3777`, `CVE-2024-26643`) — skipped on
purpose in batch3. Next attributable kernel depth without reopening CVE
quarantine:
| Knob | Before | After | Attribution |
|------|--------|-------|-------------|
| `CONFIG_SECURITY_YAMA` | unset (but `CONFIG_LSM` listed yama) | `=y` | Graphene/AXP LSM stack; ptrace scope |
| `CONFIG_SLAB_FREELIST_RANDOM` | unset | `=y` | Graphene/AH slab hardening companion to existing `SLAB_FREELIST_HARDENED` |
## Apply
```bash
bash vendor/sunfish-a16/patches/009-kernel-hardening/apply_uss5_1_defconfig.sh \
kernel/google/msm-4.14
```
Wired into `scripts/009-bacon-axp-stage1-combo4-cve-hi-releasekeys.sh` after
Stage1+combo4+CVE apply.
## LAB verify
```text
zcat /proc/config.gz | grep CONFIG_SECURITY_YAMA=y
zcat /proc/config.gz | grep CONFIG_SLAB_FREELIST_RANDOM=y
cat /proc/sys/kernel/yama/ptrace_scope # expect 1 (default)
pidof magiskd # still up
```
## Out of scope here
- `CVE-2022-49980` lock-scope port (still denylist)
- nf_tables high-offset CVEs
- Stage1 slab FAIL patches (`0010`/`0018` still reject on this tree)
- `hardened_malloc` / bootloader lock