Armin Razmjou นักวิจัยด้านความมั่นคงปลอดภัยได้รายงานช่องโหว่ในโปรแกรม Vim และ Neovim ซึ่งเป็นโปรแกรมประเภท text editor ที่ได้รับความนิยมในกลุ่มผู้ใช้งานระบบปฏิบัติการสาย Unix เช่น Linux หรือ macOS โดยช่องโหว่ที่พบนี้ส่งผลให้เครื่องคอมพิวเตอร์ของเหยื่อถูกสั่งรันโค้ดอันตรายได้เพียงแค่เปิดไฟล์ขึ้นมาดูหรือแก้ไข สาเหตุของช่องโหว่เกิดจากข้อผิดพลาดในฟีเจอร์ modelines ซึ่งผู้ประสงค์ร้ายสามารถอาศัยฟีเจอร์นี้ในการสั่งประมวลผลคำสั่งใด ๆ ในเครื่องของเหยื่อได้ ช่องโหว่นี้มีรหัส CVE-2019-12735

ฟีเจอร์ modelines อนุญาติให้ผู้ใช้กำหนดค่าการทำงานของโปรแกรม Vim หรือ Neovim ได้โดยใส่ข้อมูลเฉพาะไว้ในส่วนหัวหรือส่วนท้ายของไฟล์เอกสาร ซึ่งเมื่อสั่งให้โปรแกรม Vim หรือ Neovim เปิดไฟล์ดังกล่าว ข้อมูลการตั้งค่านั้นก็จะถูกนำมาเรียกใช้งานทันที (ในโปรแกรม Vim และ Neovim ฟีเจอร์ modelines ถูกเปิดมาเป็นค่าเริ่มต้น) ตัวอย่างการใช้งานฟีเจอร์ modelines เช่นคำสั่ง /* vim: tw=60 ts=2: */ จะเป็นการกำหนดให้ความกว้างของกล่องข้อความเท่ากับ 60 ตัวอักษร

อย่างไรก็ตาม ฟีเจอร์ modelines นอกจากจะสามารถใช้เพื่อกำหนดค่าการทำงานของโปรแกรม Vim หรือ Neovim แล้ว ยังสามารถใช้อ่านข้อมูลการตั้งค่าจากไฟล์อื่นหรือเรียกคำสั่งอื่น ๆ ของระบบได้ด้วย ซึ่งถึงแม้ทางผู้พัฒนาโปรแกรมจะกำหนดให้คำสั่งที่รันผ่านฟีเจอร์ modelines จะทำงานได้จำกัดรวมถึงทำงานอยู่ภายใต้โหมด sandbox แล้วก็ตาม แต่นักวิจัยฯ ก็พบว่าสามารถสั่งให้ประมวลผลโค้ดที่ทะลุการป้องกันนี้ออกมาได้ โดยได้เผยแพร่ตัวอย่างโค้ดสำหรับทดสอบช่องโหว่เป็นไฟล์ .txt ที่มีโค้ดพิเศษอยู่ หากใช้ Vim หรือ Neovim เปิดไฟล์ดังกล่าวก็จะถูกรันคำสั่งสร้าง backdoor เพื่อเปิดช่องทางให้ผู้ประสงค์ร้ายเชื่อมต่อเข้ามาควบคุมเครื่องคอมพิวเตอร์ของเหยื่อได้

หลังจากที่มีการรายงานช่องโหว่ ทางผู้พัฒนาโปรแกรม Vim และ Neovim ได้ออกอัปเดตแก้ไขมาเป็นที่เรียบร้อยแล้ว โดยเป็น Vim เวอร์ชัน 8.1.1365 และ Neovim เวอร์ชัน 0.3.6 ผู้ใช้ควรอัปเดตโปรแกรมดังกล่าวให้เป็นเวอร์ชันล่าสุดโดยเร็ว ทั้งนี้ ผู้ใช้ Linux น่าจะสามารถอัปเดตได้ผ่านช่องทางปกติของ distro ที่ใช้งานอยู่ หรือดาวน์โหลดอัปเดตจาก repository ของนักพัฒนา แต่สำหรับผู้ใช้ macOS เนื่องจากโปรแกรม Vim ถูกติดตั้งมาในลักษณะที่เป็นส่วนหนึ่งของระบบ อาจต้องรออัปเดตอย่างเป็นทางการจากทาง Apple หรือพิจารณาการใช้ช่องทางอัปเดตผ่าน Homebrew ไม่ควรดาวน์โหลดไฟล์โปรแกรมเวอร์ชันใหม่มาติดตั้งทับไฟล์เดิมโดยตรงเพราะอาจส่งผลกระทบได้ ทั้งนี้ หากยังไม่สามารถติดตั้งอัปเดตได้อาจพิจารณาปิดการใช้งานฟีเจอร์ modelines ก่อนชั่วคราว ซึ่งสามารถศึกษาวิธีการตรวจสอบและปิดฟีเจอร์ดังกล่าวได้จากที่มา

<strong>ที่มา:</strong> <a href="http://thcert.co/706PsQ">The Hacker News</a>, <a href="http://thcert.co/aJ9Gy5">Github</a>, <a href="https://www.thaicert.or.th/newsbite/2019-06-12-01.html?fbclid=IwAR2jSyZ1KzYc-FXkCne5IO2FklMPHudT2-ZhqJYko-9H4IgM5SdnW7tzHdw#2019-06-12-01">ThaiCERT</a>