Qualys แสดงความสามารถอีกครั้งด้วยการเปิดเผยช่องโหว่ที่ชือว่า “Stack Clash” ทำให้ user สามารถใช้ช่องโหว่ดังกล่าวเพิ่มสิทธิ์ของตัวเองให้กลายเป็นสิทธิ์สูงสุดหรือ root ได้

Qualys พบช่องโหว่ “Stack Clash” ซึ่งทำให้ได้สิทธิ์ root ใน UNIX System ได้ ทาง Qualys พบช่องโหว่นี้ตั้งแต่เมื่อเดือนที่แล้ว (06/2017) และได้แจ้งให้เหล่า vendor ต่างๆไปก่อนแล้ว เพื่อให้ทาง vendor เหล่านั้นออกมา patch แก้ไขได้ทัน

ช่องโหว่นี้กระทบทั้ง Linux, OpenBSD, NetBSD, FreeBSD, และ Solaris. Researchers ได้ทดสอบ Stack Clash ทั้งบน i386 และ amd64 platforms เรียบร้อยแล้ว

จริงๆช่องโหว่นี้ถูกพบตั้งแต่ปี 2005 แล้วก็มีการ patch ไปแล้ว, พอปี 2010 ก็เจออีกแล้วก็ออก patch มาเช่นเคย แต่สุดท้ายก็ยังมีเจออีกในปีนี้ (2017)

ปัญหาเกี่ยวกับ stack ซึ่งเป็นพื้นที่ของ memory ที่ application ใช้ในการรัน code ซึ่งยิ่ง Program โตมากขึ้น Stack ของ Application ก็จะโตไปเรื่อยๆเช่นกัน ซึ่งปัญหาของการโตของ stack มากไปแล้วใกล้กับ stack ของ Program ตัวอื่นมากเกินไป นั่นคือปัญหาที่เกิดทั้งใน 2005, 2010 และ 2017 ทำให้ security researcher เจอช่องทางที่จะทำให้ระบบปฎิบัติการสับสนแล้วทำให้ code ของ stack หนึ่งไปโผล่ใน stack อื่นได้ แม้ปัญหานี้จะมีการทำส่วนป้องกันที่ชื่อว่า Guard-page ขึ้นมาก็ไม่มีประสิทธิภาพการป้องกันที่ดีพอเพราะเป็นขนาดแค่ไม่กี่ kilobytes เท่านั้น  โดย Qualys ทำให้ PoC code ที่จะทำให้กระโดดไปยัง low-level code จาก stack memory ของ malicious Application ไปยัง application ทั่วไปได้ ทำให้ได้สิทธิ์ root ในที่สุด

แต่อย่างไรก็แล้วแต่ การพบช่องโหว่นี้ PoC ที่ออกมายังเป็นแค่ Local Exploitation เท่านั้น ยังจำเป็นต้องเข้าถึงเครื่องให้ได้ก่อน ไม่ใช่ Remote Exploitation แต่อย่างใด อย่างไรก็ตามทาง Qualys ก็บอกว่ามีความเป็นไปได้ที่จะกลายเป็นแบบ Remote Exploitation เช่นกัน ซึ่งมันจะกลายเป็นช่องโหว่อื่นนอกเหนือจากช่องโหว่ Privilege Escalation นั่นเอง

ตอนนี้ทาง RHEL ได้ออก patch มาแก้ไขแล้วครับ ส่วน Vendor เจ้าอื่นๆก็จะมีการปล่อย update ต่อไปเรื่อยๆครับ หากเราไม่สามารถจะทำการ update OS ได้ ให้เราทำการ set RLIMIT_STACK และ RLIMIT_AS ของ user ทั่วไปให้มีค่าต่ำๆใน /etc/limits.conf และ /etc/xinetd.conf ซึ่งแน่นอนว่าอาจทำให้โปรแกรมนั้นๆทำงานได้ช้าลงและบางครั้งอาจจะไม่สามารถใช้งานเลยก็เป็นได้ ดังนั้นแนะนำให้ทำการ patch จะดีกว่าครับ

ผลกระทบ: Privilege Escalation
ระบบที่ได้รับผลกระทบ: Linux Kernel <= versions 4.11.5, OpenBSD, NetBSD, FreeBSD, และ Solaris
วิธีการป้องกันและแก้ไข: Update หรือทำการ set RLIMIT_STACK, RLIMIT_AS ให้มีค่าต่ำๆ

Update List Affected:

Debian or Ubuntu update

Oracle/RHEL/CentOS/Scientific Linux

Fedora Linux

Suse Enterprise Linux or Opensuse Linux

SUSE OpenStack Cloud 6

SUSE Linux Enterprise Server for SAP 12-SP1

SUSE Linux Enterprise Server 12-SP1-LTSS

SUSE Linux Enterprise Module for Public Cloud 12

OpenBSD

Oracle Solaris

Source::