EST. 2026 — Notes from real server work SYSADMIN · SECURITY · AI · DIRECTADMIN Issue 01
THE SYSADMIN ALMANAC
Home / Security Notice / Guzzle ส่งคุกกี้เกินขอบเขตโฮสต์ CVE-2026-67355
Security Notice

Guzzle ส่งคุกกี้เกินขอบเขตโฮสต์ CVE-2026-67355

by Ton-Or ·18 Jul 2026·4 min read
Guzzle ส่งคุกกี้เกินขอบเขตโฮสต์ CVE-2026-67355

นักพัฒนาและผู้ดูแลระบบที่ใช้ Guzzle เก็บคุกกี้ร่วมกันระหว่างโฮสต์ที่เชื่อถือไม่เท่ากันควรเร่งอัปเดตเป็น 7.15.1 หรือใหม่กว่า

1-minute summary

Symptom / problem
คุกกี้ที่ตั้งใจให้ใช้เฉพาะโฮสต์ต้นทางอาจถูกส่งต่อไปยังโดเมนย่อยจนข้อมูลลับรั่วไหล
Who should read
นักพัฒนาและผู้ดูแลระบบของแอป PHP ที่เปิดใช้คุกกี้ใน Guzzle และใช้ที่เก็บเดียวกันกับโฮสต์แม่และโดเมนย่อย
Fix in short
อัปเดต Guzzle เป็น 7.15.1 หรือใหม่กว่า พร้อมลบหรือสร้างข้อมูลคุกกี้ถาวรจากรุ่นเก่าขึ้นใหม่ตามคำแนะนำของผู้พัฒนา
Jump to steps

พอดีไล่ฟีด Packagist เจอประกาศของ Guzzle เรื่องคุกกี้ที่ควรจำกัดอยู่กับโฮสต์เดียว แต่กลับอาจถูกส่งไปยังโดเมนย่อย ช่องโหว่ CVE-2026-67355 อยู่ในแพ็กเกจ guzzlehttp/guzzle ที่แอป PHP ใช้ส่งคำขอ HTTP ต้องตรวจว่าแอปใช้ที่เก็บคุกกี้ร่วมกับปลายทางใดบ้าง

Guzzleไลบรารี HTTP สำหรับ PHP
<7.15.1รุ่นที่ได้รับผลกระทบ
7.15.1รุ่นที่แก้ไข
5.9/10CVSS 3.1 ระดับปานกลาง

ใครต้องทำอะไร

  • นักพัฒนา: ถ้าแอปใช้ Guzzle เก็บคุกกี้ร่วมกันข้ามโฮสต์ที่เชื่อถือไม่เท่ากัน ให้เร่งอัปเดตเป็น 7.15.1 หรือใหม่กว่าและทดสอบการรับส่งคุกกี้ก่อนนำขึ้นใช้งาน
  • ผู้ดูแลระบบ: ถ้าดูแลการติดตั้งแอปที่ใช้งานลักษณะนี้ ให้ประสานอัปเดตแพ็กเกจโดยเร็วและเตรียมสร้างข้อมูลคุกกี้ถาวรใหม่พร้อมการนำรุ่นแก้ไขขึ้นใช้งาน

เกิดอะไรขึ้น

คุกกี้ที่ไม่มี Domain หรือมีค่าว่าง ต้องเป็นแบบ host-only คือส่งกลับให้โฮสต์ที่ตั้งคุกกี้นั้นได้เพียงโฮสต์เดียว แต่ CookieJar รุ่นที่มีปัญหาใส่ชื่อโฮสต์ลงช่อง Domain โดยไม่จำว่าเป็น host-only พอส่งคำขอถัดไป เลยยอมส่งคุกกี้ให้โดเมนย่อยด้วย

เช่น คุกกี้แบบ host-only จาก example.com อาจติดไปกับคำขอถึงโดเมนย่อย ถ้าผู้โจมตีควบคุมโฮสต์ลูกหรือดูข้อมูลที่ส่งถึงโฮสต์นั้นได้ ก็อาจเห็นรหัสเซสชัน โทเคน หรือข้อมูลลับในคุกกี้ ประกาศจัดความรุนแรงไว้ระดับปานกลาง ด้วยคะแนน CVSS 3.1 ที่ 5.9/10 ตาม GitHub Advisory Database

แอปต้องเปิดใช้คุกกี้และใช้ที่เก็บในตัวชุดเดียวกัน จากนั้นรับคุกกี้ host-only จากโฮสต์แม่ แล้วเรียกโฮสต์ลูกที่เชื่อถือน้อยกว่า คุกกี้ยังต้องตรงกับ path และยังไม่หมดอายุ ส่วนคุกกี้ Secure จะส่งผ่านการเชื่อมต่อปลอดภัยเท่านั้น

ใครโดนและรุ่นที่แก้

แพ็กเกจ รุ่นที่ได้รับผลกระทบ รุ่นที่แก้ไข
guzzlehttp/guzzle ทุกรุ่นก่อน 7.15.1 7.15.1 และใหม่กว่า

แอปที่ไม่ใช้ระบบคุกกี้ของ Guzzle ไม่ได้รับผลกระทบ ส่วนแอปที่แยกที่เก็บคุกกี้ตามโฮสต์หรือขอบเขตความเชื่อถือ ไม่เรียกโดเมนย่อยที่เชื่อถือน้อยกว่าด้วยที่เก็บร่วม หรือเก็บเฉพาะคุกกี้ที่ระบุ Domain ถูกต้องและไม่ว่าง ก็ไม่เข้าข่ายข้อมูลรั่วจากกรณีนี้

รุ่นแก้ไขเก็บสถานะ host-only และจับคู่คุกกี้ชนิดนี้กับโฮสต์เดิมเท่านั้น ข้อมูลคุกกี้ที่บันทึกไว้จะมี HostOnly เป็นค่า true หรือ false ด้วย รายละเอียดอยู่ใน ประกาศของผู้พัฒนา Guzzle

ต้องทำอะไร

ตรวจรุ่นในโปรเจกต์แล้วอัปเดตผ่าน Composer โดยข้อกำหนดใน composer.json ต้องยอมรับรุ่นที่แก้ไข หากยังล็อกไว้กับรุ่นเก่า ให้ปรับข้อกำหนดพร้อมตรวจความเข้ากันได้ก่อน และตรวจผลหลังอัปเดตว่าได้ 7.15.1 หรือใหม่กว่า

composer show guzzlehttp/guzzle
composer update guzzlehttp/guzzle --with-all-dependencies
composer show guzzlehttp/guzzle

นำไฟล์ล็อกและแพ็กเกจที่ผ่านการทดสอบไปใช้ในการติดตั้งจริง

ระวังข้อมูลคุกกี้เดิม

FileCookieJar และ SessionCookieJar จะโยน RuntimeException เมื่อโหลดข้อมูลคุกกี้ที่ไม่มี HostOnly หลังอัปเกรด ให้ลบหรือสร้างข้อมูลใหม่ เติม HostOnly เองได้เฉพาะเมื่อรู้ว่าคุกกี้ต้นฉบับมี Domain หรือไม่ ห้ามเดาจากชื่อโดเมนที่เก็บไว้

หากยังอัปเดตไม่ได้ ผู้พัฒนาแนะนำให้แยก CookieJar ต่อโฮสต์หรือขอบเขตความเชื่อถือ ปิดการจัดการคุกกี้สำหรับปลายทางที่เชื่อถือน้อยกว่า หรือหลีกเลี่ยงการเรียกปลายทางนั้นผ่านไคลเอนต์ที่ใช้ที่เก็บร่วม โดยเฉพาะการตั้ง cookies เป็น true ซึ่งสร้างที่เก็บเดียวให้ทั้งไคลเอนต์ ตาม แนวทางแก้ขัดและข้อควรระวังตอนอัปเกรด

ส่วนตัวผมให้เร่งแพตช์ถ้าแอปใช้คุกกี้ร่วมกันระหว่างโฮสต์แม่กับโดเมนย่อยที่เชื่อถือไม่เท่ากัน ที่มา: Guzzle: Host-only cookie scope is not preserved เดี๋ยวกลับมาแก้เพิ่มให้ภายหลังครับ

Want us to set this up?

Get help with server setup, configuration, migration, or troubleshooting. Save time for the work that matters.

Get a quote

Hit something like this? Stuck somewhere?

Come trade notes on the LinuxThai board

→ Continue on the board

Comments 0

No comments yet — be the first