โครงการ Log4j ออกเวอร์ชั่น 2.17.0 หลังนักวิจัยพบช่องโหว่ CVE-2021-45105 ที่แม้จะไม่สามารถส่งโค้ดเข้าไปรันได้เหมือนช่องโหว่ก่อนหน้านี้ แต่ก็ทำให้โปรแกรมแครชไปได้ กลายเป็นช่องโหว่แบบ Denial of Service
ลำดับช่องโหว่ของ Log4j ในช่วงสัปดาห์ที่ผ่านมาได้แก่
- CVE-2021-44228 ช่องโหว่รันโค้ดระยะไกล กระทบกรณีใช้งานปกติ ทำให้กระทบเป็นวงกว้าง คะแนน CVSS 10.0 แก้ไขแล้วใน Log4j 2.15.0 ขึ้นไป หรือเปิดตั้งค่า formatMsgNoLookups=true
- CVE-2021-45046 ช่องโหว่รันโค้ดระยะไกล กระทบต่อเมื่อแอปพลิเคชั่นเรียกใช้ Log4j ในวิธีการเฉพาะ จากการเขียน log ผ่าน ThreadContext คะแนน CVSS 9.0 แก้ไขแล้วใน Log4j 2.16.0 ด้วยการปิดการทำงาน JNDI
- CVE-2021-45105 ช่องโหว่ DoS กระทบต่อเมื่อแอปพลิเคชั่นเรียกใช้ Log4j ในวิธีการเฉพาะ จากการเขียน log ผ่าน ThreadContext คะแนน CVSS 7.5 แก้ไขแล้วใน Log4j 2.17.0
ช่องโหว่ล่าสุดนี้เกิดจากแฮกเกอร์สามารถกระตุ้นให้ Log4j รันกระบวนการ message lookup แบบ recursive ผ่านทาง log เช่น ${ctx:loginId}
ที่มา - Log4j
Comments
ผมใช้เวอร์ชั่น 1.x รอดตัวไปอิอิ
version 1.x ก็มีช่องโหว่ CVE-2021-4104 ที่เพิ่งเจอเหมือนกันครับ แล้วยังไงเวอร์ขั่น 1 ก็ end of life ไปตั้งแต่ปี 2015 ควรจะ upgrade เป็น log4j 2 ได้แล้ว
ผมหาโค้ดบรรทัดนั้นไม่เจอมันอยู่คลาสไหนพอบอกได้ไหมครับ เท่าที่ดูจากเว็บเขาบอกว่าเจอเฉพาะใน 2.x ผมอ่านจากตรงนี้ครับ https://logging.apache.org/log4j/2.x/security.html อ้อผมอ่านผิดที่คุณบอกมันคนละเลข bug
Vulnerabilities reported after August 2015 against Log4j 1.x were not checked and will not be fixed.
ตามในเพจที่คุณแชร์มาเลยครับ
ขอบคุณครับ
ที่คุณ burnburn บอกมาเป็นคนละช่องโหว่กันกับในเรื่องนี้ครับ แต่เพิ่งรายงานเข้ามาจังหวะใกล้ๆ กัน (น่าจะเพราะช่องโหว่แรก คนเลยไปค้นกัน) กระทบ log4j 1.2 ที่เปิดช่องให้ attacker แก้ไขไฟล์ตั้งค่า log4j ได้ https://nvd.nist.gov/vuln/detail/CVE-2021-4104
ซึ่งตามด้านล่างคือ log4j 1.x หมดอายุ support ไปแล้ว ถ้ายังใช้อยู่ก็ไม่มี patch แก้อะไรแล้วนอกจากอัพไปเป็น 2.x แทน
ขอบคุณครับ
ถ้าเปิด formatMsgNoLookups=true แล้วยังจำเป็นต้องลง patch มั้ยหว่า (แต่ตอนนี้ผมแนะนำให้ลงไปเถอะ พังคามือยังดีกว่าไม่รู้ว่าโดนเจาะไปหรือยัง)