เมื่อไม่นานมานี้ ในช่วงต้นฤดูร้อน มีการเรียกร้องให้ Exim อัปเดตเป็นเวอร์ชัน 4.92 อย่างกว้างขวาง เนื่องจากช่องโหว่ CVE-2019-10149 (
ตอนนี้ใครก็ตามที่อัพเดทอย่างเร่งด่วนก็สามารถ “ชื่นชมยินดี” อีกครั้งได้: เมื่อวันที่ 21 กรกฎาคม 2019 นักวิจัย Zerons ค้นพบช่องโหว่ที่สำคัญใน Exim Mail Transfer agent (MTA) เมื่อใช้ TLS สำหรับเวอร์ชันจาก 4.80 ไป 4.92.1 รวมช่วยให้สามารถระยะไกลได้ รันโค้ดด้วยสิทธิ์พิเศษ (
ช่องโหว่
มีช่องโหว่เมื่อใช้ทั้งไลบรารี GnuTLS และ OpenSSL เมื่อสร้างการเชื่อมต่อ TLS ที่ปลอดภัย
ตามที่นักพัฒนา Heiko Schlittermann ไฟล์การกำหนดค่าใน Exim ไม่ได้ใช้ TLS ตามค่าเริ่มต้น แต่การแจกจ่ายจำนวนมากสร้างใบรับรองที่จำเป็นระหว่างการติดตั้งและเปิดใช้งานการเชื่อมต่อที่ปลอดภัย Exim เวอร์ชันใหม่กว่าจะติดตั้งตัวเลือกนี้ด้วย tls_advertise_hosts=* และสร้างใบรับรองที่จำเป็น
ขึ้นอยู่กับการกำหนดค่า Distros ส่วนใหญ่เปิดใช้งานตามค่าเริ่มต้น แต่ Exim จำเป็นต้องมีใบรับรอง+คีย์เพื่อทำงานเป็นเซิร์ฟเวอร์ TLS Distros อาจสร้างใบรับรองระหว่างการตั้งค่า Exims ที่ใหม่กว่ามีตัวเลือก tls_advertise_hosts โดยมีค่าเริ่มต้นเป็น "*" และสร้างใบรับรองที่ลงนามด้วยตนเอง หากไม่มีให้ไว้
ช่องโหว่นั้นอยู่ที่การประมวลผลที่ไม่ถูกต้องของ SNI (Server Name Indication ซึ่งเป็นเทคโนโลยีที่เปิดตัวในปี 2003 ใน RFC 3546 เพื่อให้ไคลเอนต์ขอใบรับรองที่ถูกต้องสำหรับชื่อโดเมน
นักวิจัยจาก Qualys ได้ค้นพบข้อบกพร่องในฟังก์ชัน string_printing(tls_in.sni) ซึ่งเกี่ยวข้องกับการหลีกเลี่ยง "" อย่างไม่ถูกต้อง ด้วยเหตุนี้ แบ็กสแลชจึงถูกเขียนโดยไม่ใช้ Escape ไปยังไฟล์ส่วนหัวของสปูลการพิมพ์ จากนั้นไฟล์นี้จะถูกอ่านด้วยสิทธิ์พิเศษโดยฟังก์ชัน spool_read_header() ซึ่งทำให้ฮีปโอเวอร์โฟลว์
เป็นที่น่าสังเกตว่าในขณะนี้ นักพัฒนา Exim ได้สร้าง PoC ของช่องโหว่ด้วยการดำเนินการคำสั่งบนเซิร์ฟเวอร์ที่มีช่องโหว่ระยะไกล แต่ยังไม่เปิดเผยต่อสาธารณะ เนื่องจากความง่ายในการใช้ประโยชน์จากจุดบกพร่อง จึงเป็นเพียงเรื่องของเวลาและค่อนข้างสั้น
สามารถดูการศึกษาโดยละเอียดเพิ่มเติมโดย Qualys ได้
การใช้ SNI ใน TLS
จำนวนเซิร์ฟเวอร์สาธารณะที่อาจมีความเสี่ยง
ตามสถิติจากผู้ให้บริการโฮสติ้งรายใหญ่ อี-ซอฟท์ อิงค์ ณ วันที่ 1 กันยายน บนเซิร์ฟเวอร์ที่เช่า เวอร์ชัน 4.92 ถูกใช้ในโฮสต์มากกว่า 70%
เวอร์ชั่น
จำนวนเซิร์ฟเวอร์
เปอร์เซ็นต์
4.92.1
6471
ลด 1.28%
4.92
376436
ลด 74.22%
4.91
58179
ลด 11.47%
4.9
5732
ลด 1.13%
4.89
10700
ลด 2.11%
4.87
14177
ลด 2.80%
4.84
9937
ลด 1.96%
เวอร์ชันอื่น ๆ
25568
ลด 5.04%
สถิติของบริษัท อี-ซอฟท์ อิงค์
หากคุณใช้เครื่องมือค้นหา
- ประมาณ 3,500,000 รายใช้ Exim 4.92 (ประมาณ 1,380,000 รายใช้ SSL/TLS)
- มีผู้ใช้มากกว่า 74,000 รายที่ใช้ 4.92.1 (ประมาณ 25,000 รายที่ใช้ SSL/TLS)
ดังนั้น Exim เซิร์ฟเวอร์ที่มีช่องโหว่ซึ่งเป็นที่รู้จักและเข้าถึงได้สาธารณะมีจำนวนประมาณ 1.5 ล้าน.
ค้นหาเซิร์ฟเวอร์ Exim ใน Shodan
การป้องกัน
- ตัวเลือกที่ง่ายที่สุด แต่ไม่แนะนำคือการไม่ใช้ TLS ซึ่งจะส่งผลให้ข้อความอีเมลถูกส่งต่ออย่างชัดเจน
- เพื่อหลีกเลี่ยงการใช้ประโยชน์จากช่องโหว่ ขอแนะนำให้อัปเดตเป็นเวอร์ชันมากกว่า
Exim Internet Mailer 4.92.2 . - หากไม่สามารถอัปเดตหรือติดตั้งเวอร์ชันที่มีแพตช์ได้ คุณสามารถตั้งค่า ACL ในการกำหนดค่า Exim สำหรับตัวเลือกได้ acl_smtp_mail โดยมีหลักเกณฑ์ดังนี้
# to be prepended to your mail acl (the ACL referenced # by the acl_smtp_mail main config option) deny condition = ${if eq{}{${substr{-1}{1}{$tls_in_sni}}}} deny condition = ${if eq{}{${substr{-1}{1}{$tls_in_peerdn}}}}
ที่มา: will.com