วันพฤหัสบดีที่ 16 ธันวาคม พ.ศ. 2564

แจ้งเตือน ไลบรารี log4j มีช่องโหว่รันโค้ด หาก log ข้อมูลจากผู้ใช้โดยตรง ควรปิดช่องโหว่ทันที

วันนี้มีรายงานถึงช่องโหว่ CVE-2021-44228 ของไลบรารี log4j ที่เป็นไบรารี log ยอดนิยมในภาษา จาวา ส่งผลให้แอปพลิเคชั่นจำนวนมากมีช่องโหว่รันโค้ดระยะไกลไปด้วย หากแอปพลิเคชั่นเขียน log จากอินพุตของผู้ใช้ไม่ว่าช่องทางใดก็ตาม เช่น การเขียน username จากอินพุตของผู้ใช้ลงใน log หรือการ log ข้อมูล user-agent ของเบราว์เซอร์

ตอนนี้มีรายงานว่าบริการสำคัญๆ จำนวนมากมีช่องโหว่นี้ เช่น Steam, iCloud, หรือ Minecraft ตลอดจนแอปแทบทุกตัวที่ใช้ Apache Struts

ช่องโหว่นี้เกิดจากความสามารถในการดึงข้อมูลจากภายนอกมาเขียน log (message lookup) คนร้ายจะใส่ข้อมูลกระตุ้นให้ log4j ดึงข้อมูลผ่านโปรโตคอล JNDI (Java Naming and Directory Interface) จากเซิร์ฟเวอร์ที่คนร้ายกำหนด จากนั้นคนร้ายจะส่ง java class รันโค้ดเข้าไปยัง log4j เพื่อรันโค้ดในสิทธิ์ระดับเดียวกับตัวแอปพลิเคชั่นได้

ในจาวาตั้งแต่ปี 2018 เป็นต้นมา (6u211, 7u201, 8u191, และ 11.0.1) การตั้งค่าเริ่มต้นของ JNDI ในจาวาปิดไม่ให้รันโค้ดจากภายนอกแล้ว แต่ฟีเจอร์นี้ของ log4j ก็ยังเปิดทางให้คนร้ายโจมตีได้อยู่ดี ขึ้นกับว่าในแอปพลิเคชั่นมีไลบรารีอะไรอยู่บ้าง

ทาง log4j ออกอัพเดตเวอร์ชั่น 2.15 มาแก้ช่องโหว่นี้แล้ว และหากยังไม่สามารถอัพเดตได้ก็สามารถตั้งค่า formatMsgNoLookups=true ไปชั่วคราว หรือหากไม่ได้ใช้ฟีเจอร์ lookup อยู่แล้วเปิดทิ้งไว้เลยก็ได้เช่นกัน


ที่มา: Blognone

วันพฤหัสบดีที่ 9 ธันวาคม พ.ศ. 2564

แจ้งเตือน รายงานช่องโหว่ Grafana ออกสู่สาธารณะ แฮกเกอร์อ่านไฟล์ในเครื่องได้

ช่องโหว่ CVE-2021-43798 ของ Grafana 8.0.0-beta1 ขึ้นไปรั่วออกสู่สาธารณะหลังนักวิจัยเพิ่งรายงานไปยัง Grafana เมื่อสัปดาห์ที่ผ่านมา และกำลังอยู่ระหว่างการปล่อยแพตช์ตามรอบในวันที่ 14 ธันวาคมนี้ ส่งผลให้ Grafana ต้องรีบปล่อยแพตช์ฉุกเฉิน

ช่องโหว่นี้เปิดทางให้แฮกเกอร์สามารถอ่านไฟล์ใดๆ ในเครื่องของเหยื่อได้ หากเปิดเว็บ Grafana ให้เข้าถึงผ่านอินเทอร์เน็ต ซึ่งทำให้แฮกเกอร์อ่านไฟล์สำคัญในเครื่องได้จนยึดเครื่องได้ในที่สุด ทำให้ช่องโหว่มีความร้ายแรงสูง คะแนน CVSSv3.1 อยู่ที่ 7.5 คะแนน

ตอนนี้ Grafana ออกแพตช์ฉุกเฉินเป็นเวอร์ชั่น 8.3.1, 8.2.7, และ 8.0.7 โดย 8.1.8 ยังต้องรอก่อน แต่หากไม่พร้อมแพตช์สามารถใช้ฟีเจอร์ normalize_path ใน reverse proxy เพื่อลดความเสี่ยงได้

ที่มา: Blognone

Django ออกเวอร์ชั่น 4.0 ใช้กับ Python 3.8 ขึ้นไป รองรับแคชด้วย Redis ในตัว

Django เว็บเฟรมเวิร์คยอดนิยมภาษา Python ประกาศออกเวอร์ชั่น 4.0 แม้ฟีเจอร์หลักๆ จะเปลี่ยนแปลงไม่มากนัก แต่การออกเวอร์ชั่นใหม่ก็ทำให้ตัดฟีเจอร์เก่าๆ ไปหลายตัวตามหลัก Semantic Versioning

ส่วนใหม่ๆ ใน Django 4.0 เช่น

  • ระบบ timezone เปลี่ยนจาก pytz มาใช้ไลบรารีมาตรฐาน zoneinfo (เพิ่มเข้า Python ใน Python 3.9)
  • เงื่อนไข UniqueConstraint ในฐานข้อมูลสามารถกำหนดฟังก์ชั่นสำหรับแต่ละฟิลด์
  • รองรับการแฮชรหัสผ่านแบบ scrypt
  • รองรับการแคชข้อมูลด้วย Redis เพิ่มจาก memcache
  • ฟอร์มต่างๆ ใช้เอนจิน template เรนเดอร์ทำให้ปรับแต่งได้ง่ายขึ้น

ส่วนฟีเจอร์ที่ถูกตัดออกจนอาจจะกระทบแอปพลิเคชั่นเดิมๆ เช่น

  • ตัดซัพพอร์ต PostgreSQL 9.6 ลงไป ทำให้ต้องการ PostgreSQL 10 ขึ้นไปเท่านั้น
  • ตัดซัพออร์ต Oracle 12.2 และ Oracle 18c
  • คอนฟิก CSRF_TRUSTED_ORIGINS เปลี่ยนฟอร์แมต ต้องกำหนดโปรโตคอลเสมอ
  • API อีกจำนวนมากที่ประกาศเตรียมถอดตั้งแต่ Django 3.0/3.1 เช่น ฟังก์ชั่น urlquote

นอกจากนี้ยังมีฟีเจอร์หลายตัวที่เตรียมตัดซัพพอร์ต เช่น ไลบรารี pytz ที่ใช้มาตั้งแต่ Django 1.4, L10N เปิดใช้งานเป็นค่าเริ่มต้น และเตรียมถอดคอนฟิกออก


ที่มา: Blognone