
سكربت Shell يبني حزم Ubuntu kernel .deb مُرقّعة تحتوي على إصلاح kfree_rcu من المنبع لثغرة use-after-free في IPv4 ذات المعرّف CVE-2026-98432.
يبني build-patched-kernel.sh حزم نواة Ubuntu بصيغة .deb التي تتضمن
الإصلاح الأصلي (upstream) الخاص بـ CVE-2026-98432:
e3f33b0a1d89 "ipv4: free inet_opt and ireq_opt after an RCU grace period"
الخلل هو استخدام بعد التحرير (use-after-free) في ip_options_build(). يمكن لوحدة معالجة مركزية واحدة أن تكون لا تزال
ترسل SYNACK بينما تقوم أخرى بتحرير خيارات IPv4 لمقبس TCP. يستبدل الإصلاح
استدعاءَي kfree() بـ kfree_rcu()، في net/ipv4/af_inet.c و
net/ipv4/tcp_ipv4.c.
uname -r إذا لم يُعطَ أي وسيط
(مثل 6.8.0-45-generic).deb-src ويثبّت المترجم وأدوات البناء.apt-get source. إذا لم يعد الأرشيف يحتوي على ذلك الإصدار، فإنه يتراجع
إلى pull-lp-source من Launchpad. ثم يثبّت تبعيات البناء.kfree_rcu() القيمة NULL، فإنه يضيف
فحصًا للقيمة NULL.+cve202698432.1 إلى إصدار الحزمة، بحيث تقوم الحزم الجديدة
بترقية حزم الأرشيف ذات نفس ABI.debian/rules الخاص بـ Ubuntu وينسخ ملفات .deb إلى
./debs-<version>/.إعادة تشغيل السكربت تعيد استخدام المصادر المنزّلة ولا ترقّعها مرتين.
على جهاز Ubuntu نفسه (شغّله كـ root أو باستخدام sudo):
./build-patched-kernel.sh # kernel from uname -r
./build-patched-kernel.sh 6.8.0-45-generic # a specific kernel
في Docker، استخدم إصدار Ubuntu الذي يطابق النواة (noble لـ 6.8،
jammy لـ 5.15). مرّر الإصدار صراحةً، لأن uname -r داخل
حاوية يُظهر نواة المضيف:
docker run --rm -v "$PWD":/work -w /work -e WORKDIR=/build ubuntu:24.04 \
./build-patched-kernel.sh 6.8.0-45-generic
يبقي WORKDIR=/build مصادر النواة داخل الحاوية. تحتاج إلى هذا
عندما يكون الدليل المثبّت غير حساس لحالة الأحرف، كما في macOS. الإعدادات الأخرى
(OUTDIR، LOCAL_SUFFIX، SRC_PACKAGE/SRC_VERSION، JOBS) موصوفة
في أعلى السكربت.
sudo apt install ./debs-<version>/linux-image-unsigned-<version>_*.deb \
./debs-<version>/linux-modules-<version>_*.deb \
./debs-<version>/linux-modules-extra-<version>_*.deb \
./debs-<version>/linux-headers-*.deb
sudo reboot
صورة النواة غير موقّعة وتحل محل حزمة linux-image-<version>
الموقّعة. إذا كان Secure Boot مفعّلًا، فإما أن توقّع الصورة بمفتاح MOK الخاص بك أو
أن تعطّل Secure Boot.