สรุปสั้น

บริษัท Sysdig ตรวจพบว่าผู้ไม่หวังดีได้พยายามโจมตีช่องโหว่ด้านความปลอดภัยระดับวิกฤตที่เพิ่งได้รับการแก้ไขใน Gitea Docker images ช่องโหว่ดังกล่าวคือ CVE-2026-20896 มีคะแนนความรุนแรง CVSS สูงถึง 9.8 ต้นตอมาจากการที่แพลตฟอร์ม DevOps เชื่อถือ header ที่ชื่อ “X-WEBAUTH-USER” จากทุก IP ต้นทาง ทำให้ไคลเอนต์ที่ไม่ผ่านการยืนยันตัวตนบนอินเทอร์เน็ตสามารถยกระดับสิทธิ์เข้าถึงระบบได้ นักวิจัยด้านความปลอดภัยชื่อ นาย Ali Mustafa (@rz1027) ผู้ค้นพบและรายงานช่องโหว่ อธิบายว่า Gitea Docker images มาพร้อมเทมเพลตไฟล์ “app.ini” ที่ฮาร์ดโค้ดค่า “REVERSE_PROXY_TRUSTED_PROXIES = *” ไว้เป็นค่าเริ่มต้น

เมื่อเปิดใช้การล็อกอินผ่าน reverse proxy ค่า wildcard “*” นั้นจะเชื่อถือทุก IP ต้นทาง ดังนั้นใครก็ตามที่เข้าถึงพอร์ตได้จะสามารถส่ง header X-WEBAUTH-USER แล้วถูกยืนยันตัวตนเป็นผู้ใช้คนใดก็ได้โดยไม่ต้องใช้รหัสผ่านหรือโทเคน และหากเปิดฟีเจอร์ลงทะเบียนอัตโนมัติไว้ การระบุชื่อผู้ใช้ที่เป็น admin ก็จะได้สิทธิ์ admin ทันที ช่องโหว่นี้กระทบ Gitea Docker images เวอร์ชันตั้งแต่ 1.26.2 ลงไป และได้รับการแก้ไขแล้วในเวอร์ชัน 1.26.3 ปัจจุบัน Sysdig ตรวจพบความพยายามโจมตีในโลกจริงเป็นครั้งแรกหลังจากเปิดเผยช่องโหว่ไปแล้ว 13 วัน และมี Gitea ที่เปิดสู่อินเทอร์เน็ตอยู่ราว 6,200 เครื่อง

รายละเอียดข่าว

เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 6 กรกฎาคม พ.ศ. 2569 ว่า ผู้ไม่หวังดีได้ถูกพบเห็นพยายามใช้ประโยชน์จากช่องโหว่ CVE-2026-20896 ใน Gitea Docker images ตามข้อมูลจากบริษัท Sysdig

ช่องโหว่นี้มีต้นตอจากการที่แพลตฟอร์ม DevOps เชื่อถือ header “X-WEBAUTH-USER” จาก IP ต้นทางใดก็ได้ ซึ่งเปิดทางให้ไคลเอนต์ที่ไม่ผ่านการยืนยันตัวตนบนอินเทอร์เน็ตได้รับสิทธิ์เข้าถึงในระดับสูง นาย Ali Mustafa นักวิจัยด้านความปลอดภัยที่ได้รับเครดิตในการค้นพบและรายงานช่องโหว่ ระบุในแถลงการณ์ที่แชร์กับ The Hacker News ผ่านอีเมลว่า Gitea Docker images มาพร้อมเทมเพลตไฟล์ “app.ini” ที่ฮาร์ดโค้ดค่า “REVERSE_PROXY_TRUSTED_PROXIES = *” ไว้เป็นค่าเริ่มต้น โดยไฟล์ “app.ini” นี้เป็นไฟล์ตั้งค่าหลักที่ใช้จัดการพารามิเตอร์ของเซิร์ฟเวอร์ การเชื่อมต่อฐานข้อมูล พฤติกรรมด้านความปลอดภัย และการตั้งค่าแอปพลิเคชัน

ที่ควรทราบคือค่าที่ปลอดภัยตามเอกสารสำหรับตัวแปร “REVERSE_PROXY_TRUSTED_PROXIES” คือ “127.0.0.0/8,::1/128” ซึ่งหมายความว่าอนุญาตเฉพาะ localhost หรือ loopback interface เป็น trusted proxy เท่านั้น แต่ Docker image อย่างเป็นทางการกลับไม่ได้ใช้ค่านี้ และฮาร์ดโค้ด “*” แทน เท่ากับว่าการตรวจสอบ allowlist แทบไม่มีผลอะไรเลย ดังนั้นเมื่อผู้ดูแลระบบตั้งค่า “ENABLE_REVERSE_PROXY_AUTHENTICATION = true” เพื่อวาง Gitea ไว้หลัง reverse proxy ที่ทำหน้าที่ยืนยันตัวตน แต่ปล่อยค่า “REVERSE_PROXY_TRUSTED_PROXIES” ไว้ตามค่าเริ่มต้น จะทำให้ระบบยอมรับ header X-WEBAUTH-USER จาก IP ต้นทางใดก็ตามที่เข้าถึง container ได้ ตามคำเตือนของ Gitea ระบุว่า กระบวนการใดก็ตามที่เข้าถึงพอร์ต HTTP ของ container ได้โดยตรง โดยไม่ผ่าน proxy ที่ตั้งใจให้ยืนยันตัวตน สามารถปลอมตัวเป็นผู้ใช้คนใดก็ได้ที่รู้หรือเดาชื่อล็อกอินได้ โดยบัญชี admin (admin, gitea_admin ฯลฯ) คือเป้าหมายที่ชัดเจนที่สุด

รายละเอียดช่องโหว่

CVE-2026-20896 มีคะแนน CVSS 9.8 จัดอยู่ในระดับวิกฤต ต้นตอคือการที่ Gitea เชื่อถือ HTTP header “X-WEBAUTH-USER” ที่กำหนดเองจาก IP ต้นทางใดก็ได้ เมื่อรวมกับการฮาร์ดโค้ด “REVERSE_PROXY_TRUSTED_PROXIES = *” ใน Docker image ทำให้กลไก allowlist ที่ควรจะจำกัดเฉพาะ proxy ที่เชื่อถือได้กลายเป็นไร้ความหมาย ผู้โจมตีที่ไม่ผ่านการยืนยันตัวตนเพียงส่ง header ที่ระบุชื่อผู้ใช้เป้าหมายก็สามารถถูกรับรองเป็นผู้ใช้คนนั้นได้ทันที โดยไม่ต้องมีรหัสผ่านหรือโทเคนใด ๆ และหากเปิดการลงทะเบียนอัตโนมัติไว้ การระบุชื่อ admin จะได้สิทธิ์ระดับผู้ดูแลระบบเต็มรูปแบบ

ช่องโหว่นี้กระทบ Gitea Docker images เวอร์ชันตั้งแต่ 1.26.2 ลงไป และได้รับการแก้ไขในเวอร์ชัน 1.26.3 ที่ปล่อยออกมาช่วงปลายเดือนที่ผ่านมา โดยลบ wildcard “*” ออก และเปลี่ยนการยืนยันตัวตนผ่าน reverse proxy ให้เป็นแบบ opt-in ที่ต้องเปิดใช้เอง ทางด้านบริษัท Sysdig เปิดเผยว่าตรวจพบความพยายามโจมตีในโลกจริงเป็นครั้งแรกหลังเปิดเผยช่องโหว่ 13 วัน โดยนาย Michael Clark ผู้อำนวยการอาวุโสฝ่ายวิจัยภัยคุกคามของ Sysdig ระบุว่ากิจกรรมที่พบยังอยู่ในขั้นการสำรวจเบื้องต้นของผู้โจมตี ความเคลื่อนไหวแรกมาจาก IP ของบริการ ProtonVPN คือ 159.26.98[.]241 ซึ่งยังไม่พัฒนาไปถึงขั้นการเจาะหรือโจมตีจริง โดยคาดว่าเป็นเพราะตรวจพบตั้งแต่ระยะแรกก่อนที่จะลุกลามเกินขั้นตอนเริ่มต้น

ผลกระทบต่อไทย

Gitea เป็นแพลตฟอร์มบริหารจัดการซอร์สโค้ดแบบ self-hosted ที่ได้รับความนิยมในหมู่นักพัฒนา ทีม DevOps และองค์กรที่ต้องการโฮสต์ Git repository ไว้บนเซิร์ฟเวอร์ของตนเองแทนบริการคลาวด์ ในประเทศไทยมีองค์กร สตาร์ตอัป และหน่วยงานที่ใช้ Gitea ผ่าน Docker เพื่อความสะดวกในการติดตั้ง ซึ่งหลายแห่งอาจใช้ image ทางการที่มีการตั้งค่าไม่ปลอดภัยนี้โดยไม่รู้ตัว หากเซิร์ฟเวอร์ Gitea ถูกเปิดสู่อินเทอร์เน็ตและเปิดใช้การยืนยันตัวตนผ่าน reverse proxy โดยปล่อยค่าเริ่มต้นไว้ ผู้โจมตีสามารถยึดบัญชี admin และเข้าถึงซอร์สโค้ดทั้งหมด รวมถึงความลับ (secrets) และ pipeline ที่อาจนำไปสู่การโจมตี supply chain ต่อได้ ด้วยจำนวน Gitea ที่เปิดสู่อินเทอร์เน็ตราว 6,200 เครื่องทั่วโลก และมีการเริ่มสำรวจโจมตีแล้ว องค์กรไทยที่ใช้งานควรตรวจสอบและแก้ไขอย่างเร่งด่วน

คำแนะนำ

ผู้ดูแลระบบควรอัปเดต Gitea เป็นเวอร์ชัน 1.26.3 หรือใหม่กว่าโดยเร็วที่สุด เนื่องจากความรุนแรงของช่องโหว่และการที่มีผู้เริ่มสำรวจโจมตีแล้ว นอกจากนี้ควรตรวจสอบไฟล์ “app.ini” และแก้ไขค่า “REVERSE_PROXY_TRUSTED_PROXIES” ให้เป็นค่าที่ปลอดภัย เช่น “127.0.0.0/8,::1/128” แทนที่จะปล่อย wildcard “*” ควรตรวจสอบว่าเซิร์ฟเวอร์ Gitea ไม่ได้เปิดพอร์ต HTTP ให้เข้าถึงได้โดยตรงจากอินเทอร์เน็ต โดยให้เข้าถึงผ่าน reverse proxy ที่ยืนยันตัวตนเท่านั้น พิจารณาปิดฟีเจอร์ลงทะเบียนอัตโนมัติหากไม่จำเป็น และตรวจสอบล็อกการเข้าถึงย้อนหลังเพื่อหาความพยายามส่ง header X-WEBAUTH-USER ที่น่าสงสัย รวมถึงเฝ้าระวังทราฟฟิกจาก IP ที่อยู่ในตาราง Indicators of Compromise ด้านล่าง

Indicators of Compromise (IoCs)

หมายเหตุ: IP ต่อไปนี้ถูก defang (ใส่ [.]) เพื่อป้องกันการเชื่อมโยงหรือ resolve โดยไม่ตั้งใจ ให้ re-fang เฉพาะในแพลตฟอร์มข่าวกรองภัยคุกคามที่ควบคุมได้ เช่น MISP, VirusTotal หรือ SIEM ขององค์กรเท่านั้น

Indicatorประเภทรายละเอียด
159.26.98[.]241IP address (ProtonVPN)IP ที่เริ่มสำรวจ/สแกนช่องโหว่ CVE-2026-20896 ครั้งแรกในโลกจริง

แหล่งอ้างอิง