EST. 2026 — Notes from real server work SYSADMIN · SECURITY · AI · DIRECTADMIN Issue 01
THE SYSADMIN ALMANAC
Home / Security Notice / 'Livewire ข้ามสิทธิ์ Authorize: GHSA-mhf7-xp6r-6qrc'
Security Notice

'Livewire ข้ามสิทธิ์ Authorize: GHSA-mhf7-xp6r-6qrc'

by Ton-Or ·22 Oct 2026·4 min read
'Livewire ข้ามสิทธิ์ Authorize: GHSA-mhf7-xp6r-6qrc'

'ผู้ดูแลแอปที่ใช้ Livewire รุ่นที่ได้รับผลกระทบร่วมกับ #[Authorize] ตามเงื่อนไขควรเร่งอัปเดต โดยเฉพาะเมธอดที่แก้ไขหรือลบข้อมูล'

1-minute summary

Symptom / problem
การผูกพารามิเตอร์กับลำดับตรวจสิทธิ์ผิดพลาด ทำให้เมธอดทำงานกับข้อมูลที่ผู้ใช้ไม่มีสิทธิ์ได้
Who should read
แอปที่ใช้ livewire/livewire >=4.3.0,<4.4.8 และใช้ #[Authorize] กับพารามิเตอร์โมเดล หรือใช้ร่วมกับ #[Json]
Fix in short
อัปเดตเป็น 4.4.8 หรือใหม่กว่าในสาย 4.x หากยังทำไม่ได้ให้ตรวจสิทธิ์ภายในเมธอดก่อนเริ่มงาน
Jump to steps

พอดีไล่ฟีดแพ็กเกจ PHP เจอประกาศของ Livewire ลงวันที่ 22 ตุลาคม 2026 เรื่องการข้ามการตรวจสิทธิ์ใน #[Authorize] เลยหยิบมาอธิบายสำหรับคนดูแลแอป Laravel ผู้ใช้อาจเรียกเมธอดให้ทำงานกับข้อมูลที่ตัวเองไม่มีสิทธิ์ได้ บางกรณีระบบตอบกลับว่าไม่อนุญาต แต่เขียนข้อมูลลงฐานข้อมูลไปแล้ว

Livewireแพ็กเกจ PHP
4.4.8รุ่นที่แก้แล้ว
Moderateความรุนแรงปานกลาง
6.5/10CVSS 3.1

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

ประกาศ GHSA-mhf7-xp6r-6qrc แยกปัญหาเป็นสามกรณี กรณีแรก #[Authorize] เลือกโมเดลที่จะตรวจสิทธิ์จากคีย์ของอาร์เรย์ แต่ action รับพารามิเตอร์ตามตำแหน่ง ถ้าคำขอเรียงคีย์ตัวเลขสลับกัน ระบบอาจตรวจสิทธิ์กับข้อมูลรายการหนึ่ง แล้วส่งอีกรายการให้เมธอด ผู้ใช้อาจผ่านการตรวจด้วยข้อมูลของตัวเอง แต่เมธอดกลับได้รับข้อมูลของคนอื่น ผู้พัฒนายกตัวอย่างว่าผู้ใช้อาจลบความคิดเห็นของคนอื่นได้

กรณีที่สองเกิดกับ event listener ที่ใช้ #[On] และ #[Authorize] พร้อมพารามิเตอร์โมเดล การเรียกผ่าน __dispatch ส่งพารามิเตอร์ผิดรายการได้แบบเดียวกัน เวลาไล่ตรวจโค้ดเลยต้องดูทั้ง action และ listener

กรณีที่สามเป็นเมธอดที่ติดทั้ง #[Json] และ #[Authorize] ตัวเมธอดถูกรันก่อนตรวจสิทธิ์ แม้คำตอบสุดท้ายยังเป็น HTTP 403 แต่ผลข้างเคียง เช่น การเขียนฐานข้อมูล เกิดขึ้นแล้ว การเห็น 403 ในบันทึกคำขออย่างเดียวเลยยืนยันไม่ได้ว่าข้อมูลไม่ถูกเปลี่ยน

GitHub จัดระดับ Moderate หรือปานกลาง คะแนน CVSS 3.1 อยู่ที่ 6.5 โดยระบุว่าการโจมตีผ่านเครือข่ายต้องมีสิทธิ์ระดับต่ำ และไม่ต้องให้ผู้ใช้อื่นโต้ตอบ ผลกระทบตามคะแนนอยู่ที่ความถูกต้องของข้อมูล ประกาศยังไม่มีหมายเลข CVE ระบุไว้

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

ขอบเขตตาม ประกาศจากโครงการ Livewire คือแอปที่ใช้ attribute ตามเงื่อนไขข้างต้น การติดตั้งแพ็กเกจในช่วงรุ่นนี้เพียงอย่างเดียวยังไม่พอจะสรุปว่าเข้าเงื่อนไขทุกแอป

แพ็กเกจ / สายรุ่น รุ่นที่ได้รับผลกระทบ รุ่นที่แก้
livewire/livewire 4.x >=4.3.0,<4.4.8 เมื่อใช้ #[Authorize] ตามเงื่อนไข 4.4.8
livewire/livewire 3.x ผู้พัฒนาระบุว่าไม่กระทบ ไม่ต้องแก้จากประกาศนี้

การตรวจสิทธิ์ภายในเมธอดด้วย $this->authorize(...) ไม่ได้รับผลกระทบจากช่องโหว่นี้ ส่วนแอปที่พึ่ง attribute ควรค้นหาเมธอดที่รับโมเดล รวมถึงเมธอด JSON แล้วเทียบกับนโยบายสิทธิ์ของข้อมูลที่รับเข้ามาจริง

ต้องทำอะไร

เริ่มจากตรวจรุ่นที่ติดตั้งและ composer.lock สำรองโค้ดกับฐานข้อมูล แล้วลองอัปเดตในระบบทดสอบก่อน สำหรับโปรเจกต์สาย 4.x คำสั่งนี้กำหนดรุ่นขั้นต่ำเป็น 4.4.8 และให้ Composer อัปเดต dependency ที่เกี่ยวข้องได้ โดยยังต้องอยู่ในข้อกำหนดของโปรเจกต์

composer require "livewire/livewire:^4.4.8" --with-all-dependencies
composer show livewire/livewire

ถ้า Composer ติดข้อจำกัด dependency ให้แก้ความเข้ากันได้ก่อนนำขึ้นใช้งาน ตรวจผลว่ารุ่นที่ติดตั้งพ้นช่วงเสี่ยงแล้ว และนำ composer.lock ที่ผ่านการทดสอบเข้าสู่กระบวนการ deploy ด้วย

แพตช์ของโครงการ เพิ่มการปฏิเสธพารามิเตอร์ที่ใช้คีย์ตัวเลขสลับลำดับหรือปนกัน โดยรับรายการแบบ list หรือคีย์ชื่อแบบสตริง และย้ายการตรวจสิทธิ์ให้เกิดก่อนรันเมธอด #[Json] หลังอัปเดตควรทดสอบด้วยข้อมูลจำลองว่าบัญชีที่ไม่มีสิทธิ์แก้ไขหรือลบข้อมูลไม่ได้ ตรวจทั้งคำตอบ HTTP และสถานะข้อมูลหลังคำขอ โดยครอบคลุม action, listener และเมธอด JSON ที่เข้าเงื่อนไข

หากยังอัปเดตไม่ได้

ผู้พัฒนาแนะนำให้เรียก $this->authorize(...) ภายในเมธอดที่ได้รับผลกระทบ แทนการพึ่ง #[Authorize] โดยวางก่อนการเขียนข้อมูลหรือผลข้างเคียงอื่น และตรวจโมเดลที่เมธอดกำลังจะใช้งานจริง

ส่วนตัวผมแนะนำให้เร่งแพตช์ถ้าเข้าเงื่อนไข โดยเฉพาะจุดแก้ไขหรือลบข้อมูล ที่มา: Livewire: Authorization bypass in #[Authorize] via reordered parameter keys and #[Json] execution order ถ้ามีรายละเอียดเพิ่มเติมจากผู้พัฒนา เดี๋ยวกลับมาแก้เพิ่มให้ภายหลังครับ

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