พบข้อผิดพลาดใน pppd ที่อนุญาตให้รันโค้ดจากระยะไกลในฐานะรูท

ช่องโหว่ในแพ็คเกจ pppd เพิ่งเปิดเผยต่อสาธารณะ (CVE-2020-8597) ซึ่งส่งผลกระทบอย่างมากต่อบริการ VPN การเชื่อมต่อ DSL และอีเธอร์เน็ต พบข้อบกพร่องที่อนุญาตให้รันโค้ดโดยการส่งคำขอรับรองความถูกต้องที่ออกแบบมาเป็นพิเศษไปยังระบบที่ใช้ PPP (Point-to-Point Protocol) หรือ PPPoE (PPP over Ethernet)

และเป็นอย่างที่เรากล่าวถึง ผู้ให้บริการต่างๆมักใช้โปรโตคอลเหล่านี้ เพื่อสร้างการเชื่อมต่อผ่านอีเธอร์เน็ตหรือ DSL และยังใช้ใน VPN บางตัวเช่น pptpd และ openfortivpn

เพื่อทดสอบความอ่อนแอของระบบต่อปัญหา มีการเตรียมต้นแบบการหาประโยชน์ ซึ่งแล้ว ให้บริการแก่ประชาชนทั่วไป

เกี่ยวกับการพิจารณาคดี

ช่องโหว่เกิดจากบัฟเฟอร์ล้น ในการใช้ Extensible Authentication Protocol (EAP)

ความล้มเหลวของลอจิกเพิ่มเติมทำให้ฟังก์ชัน eap_input () ไม่ตรวจสอบว่า EAP ได้รับการเจรจาระหว่างเฟส Line Control Protocol (LCP) หรือไม่

สิ่งนี้ช่วยให้ผู้โจมตีที่ไม่ได้รับการพิสูจน์ตัวตนสามารถส่งแพ็กเก็ต EAP ได้ แม้ว่า ppp จะปฏิเสธการเจรจาการรับรองความถูกต้องเนื่องจากขาดการสนับสนุนสำหรับ EAP หรือเนื่องจากข้อความรหัสผ่านที่แชร์ล่วงหน้าไม่ตรงกันที่ตกลงในขั้นตอน LCP

รหัส pppd ที่มีช่องโหว่ใน eap_input จะประมวลผลแพ็กเก็ต EAP ต่อไปและทริกเกอร์สแต็กบัฟเฟอร์ล้น

ข้อมูลที่ไม่ได้รับการยืนยันซึ่งมีขนาดที่ไม่รู้จักนี้สามารถใช้เพื่อทำให้หน่วยความจำของระบบเป้าหมายเสียหายได้ pppd มักจะทำงานด้วยสิทธิพิเศษสูง (ระบบหรือรูท) และทำงานร่วมกับไดรเวอร์เคอร์เนล ทำให้ผู้โจมตีสามารถเรียกใช้รหัสโดยอำเภอใจด้วยสิทธิ์ระดับรูทหรือระดับระบบ

ด้วยสิ่งนี้ การโจมตีสามารถทำได้ในขั้นตอนก่อนการตรวจสอบสิทธิ์ ส่งผ่านโดยการส่งแพ็กเก็ตที่มีประเภท EAPT_MD5CHAP รวมถึงชื่อโฮสต์ที่ยาวมากซึ่งไม่พอดีกับบัฟเฟอร์ที่จัดสรร

เนื่องจากข้อผิดพลาดในรหัสเพื่อตรวจสอบขนาดของช่อง rhostname ผู้โจมตีสามารถเขียนทับข้อมูลภายนอกบัฟเฟอร์ บนสแต็กและดำเนินการจากระยะไกลของรหัสของคุณด้วยสิทธิ์ระดับราก

ช่องโหว่ดังกล่าวปรากฏขึ้นบนเซิร์ฟเวอร์และฝั่งไคลเอ็นต์นั่นคือไม่เพียง แต่เซิร์ฟเวอร์เท่านั้นที่สามารถถูกโจมตี แต่ยังรวมถึงไคลเอนต์ที่พยายามเชื่อมต่อกับเซิร์ฟเวอร์ที่ควบคุมโดยผู้โจมตี (ตัวอย่างเช่นผู้โจมตีสามารถแฮ็กเซิร์ฟเวอร์ผ่านช่องโหว่ก่อนจากนั้นจึงเริ่มโจมตีไคลเอนต์ที่ เชื่อมต่อ)

ช่องโหว่ ยังมีผลต่อสแต็ก lwIP แต่ไม่ได้เปิดใช้งานการรองรับ EAP ในการตั้งค่าเริ่มต้นใน lwIP

เวอร์ชันและโซลูชันที่ได้รับผลกระทบ 

ด้วยเหตุนี้จึงตรวจพบข้อผิดพลาด มีผลกับ pppd เวอร์ชัน 2.4.2 ถึง 2.4.8 รวมและแก้ไขในรูปแบบของแพทช์ บางท่านอาจทราบดีว่าการเปิดเผยข้อบกพร่องต่อสาธารณชนจะเกิดขึ้นนานหลังจากค้นพบและหลังจากแก้ไขปัญหาแล้ว และแม้ว่าจะใช้กระบวนการทั้งหมด แต่ก็ยังมีส่วนของผู้ใช้ที่ต้องดำเนินการอัปเดตที่เกี่ยวข้อง

สามารถตรวจสอบสถานะการแก้ปัญหาได้ ภายในรายงานของลีนุกซ์หลัก

สิ่งนี้สามารถเห็นได้ใน หน้าเหล่านี้: debian, อูบุนตู, RHEL, เฟโดร่า, SUSE, OpenWRT, โค้ง, เน็ตบีเอสดี.

ใน RHEL, OpenWRT และ SUSE แพ็กเกจ pppd ถูกรวบรวมโดยรวม "Stack Smashing Protection" ("-fstack- ป้องกัน»ใน gcc) ซึ่ง จำกัด การดำเนินการล็อค

นอกเหนือจากการกระจายช่องโหว่ยังได้รับการยืนยันในผลิตภัณฑ์ Cisco (CallManager), TP-LINK และ Synology (DiskStation Manager, VisualStation VS960HD และ Router Manager) โดยใช้รหัส pppd หรือ lwIP

ดังนั้นแพทช์จึงพร้อมใช้งานแล้ว ภายในที่เก็บของลีนุกซ์ส่วนใหญ่และบางส่วนได้นำไปใช้แล้วโดยเสนอการอัปเดตแพ็คเกจ

หากคุณต้องการทราบข้อมูลเพิ่มเติม เกี่ยวกับข้อบกพร่องที่พบคุณสามารถตรวจสอบรายละเอียดและข้อมูลเพิ่มเติม ในลิงค์ต่อไปนี้.


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา