ช่องโหว่นี้ถูกค้นพบโดย Andres Riancho ซึ่งเป็นผู้เชี่ยวชาญด้านความปลอดภัยของระบบ Cloud โดย Hacker จะใช้ประโยชน์จากช่องโหว่นี้ได้ก็ต่อเมื่อ เว็บแอปพลิเคชั่นส่งคำร้องไปยัง /recaptcha/api/siteverify (Google reCAPTCHA) ในลักษณะที่ไม่ปลอดภัย Hacker ก็จะใช้ประโยชน์ช่องโหว่นี้ข้ามผ่านกระบวนการป้องกันได้ทุกครั้ง
สำหรับขั้นตอนการทำงานของช่องโหว่นี้ คือ เมื่อเว็บมีการใช้งานแอปพลิเคชั่น reCAPTCHA Google จะส่งชุดรูปภาพ และใช้รหัส JavaScript ในการแสดงผลบนบราวเซอร์
และเมื่อผู้ใช้กดปุ่มเพื่อยืนยันแล้ว มันจะส่งค่า {reCAPTCHA-generated-hash} ไปยยัง API เพื่อทำการตรวจสอบคำตอบ หากผู้ใช้ตอบได้ถูกต้อง API จะส่ง “OK” ไปยังแอปพลิเคชั่นที่ทำหน้าที่ประมวลผล และให้สิทธิ์ผู้ใช้เพื่อเข้าถึงหน้าเว็บตามที่ร้องขอมา
Riancho ยังกล่าาวว่า HTTP Parameter Pollution ที่ในเว็บนั้นสามารถข้ามผ่าน reCAPTCHA ซึ่งช่องโหว่ HTTP Parameter Pollution มีความเสี่ยงทั้งในฝั่ง Client และ Server ทำให้อาจเกิดการขโมยข้อมูลขนากใหญ่ได้ แต่ส่วนใหญ่ที่พบมักจะเป็นกรณที่อยู่ในความเสี่ยงต่ำ
นอกจากนี้ Riancho ยังพบว่า อาจเกิดการส่งคำขอ HTTP 2 ครั้ง โดยจะส่งไปยังบริการของ Google และรับผลตอบกลับแบบเดียวกับที่ส่งไปให้ Google
ซึ่ง API ของ reCAPTCHA มันจะใช้พารามิเตอร์ลับตัวแรก แต่จะไม่สนใจพารามิเตอร์ตัวที่สอง จุดนี้เองจึงเป็นเหตุให้นักวิจัยค้นพบช่องโหว่ ซึ่งนักวิจัยได้ตั้งข้อสังเกตว่า
ถ้าตัวแอปพลิเคชั่นนั่นเกิดช่องโหว่ HTTP Parameter Pollution และ URL ที่ถูกสร้างขึ้นมา โดยรวมการตอบสนองของพารามิตเรอ์ก่อนที่จะใช้พารามิเตอร์ลับ ทำให้ Hacker สามารถข้ามผ่านการตรวจสอบสิทธิ์ reCAPTCHA ได้
ปัญหาช่องโหว่นี้ทางได้ถูกรายงานไปยัง Google เมื่อวันที่ 29 มกราคมที่ผ่านมา และได้มีการออกแพทช์เมื่อวันที่ 25 มีนาคม
โดยแพทช์ที่ออกมานั้นทาง Google ได้ให้ REST API ส่งค่า error กลับไป เมื่อพบว่า HTTP ส่งคำร้องมายัง /recaptcha/api/siteverify ด้วยชื่อพารามิเตอร์ซ้ำกัน 2 ชื่อ
งานนี้นักวิจัยได้ค่าตอบแทนจาก Google ไปประมาณ 500 เหรียญสหรัฐ
ที่มา : Security Week