Niska

symfony/ux-live-component: LiveComponentHydrator HMAC checksum lacks component and slot binding

  • Ujawniono: 19.06.2026
  • Aktualizacja: 11.10.2026 10:22

Description

In symfony/ux-live-component, a component's server-side state is exposed to the browser as a set of props (#[LiveProp]-annotated properties). Props marked writable: true can be freely changed by the client. Read-only props are round-tripped to the browser and back, and their integrity is protected by an HMAC so the client cannot tamper with them. Child components additionally receive a propsFromParent blob, also HMAC-signed.

The HMAC computed by Symfony\UX\LiveComponent\LiveComponentHydrator covered only the sorted prop key/value pairs. It didn't include the component name, the slot identifier (props vs propsFromParent), or any request context, and a single application-wide secret is used for every component. A signed blob the server minted for component A is therefore a valid signature for component B if the key names happen to match, and a props blob can be replayed in the propsFromParent slot (or the reverse). An attacker can use this to set a read-only prop on a target component to a value they were only ever allowed to choose as a writable prop on another component.

Resolution

The HMAC is now bound to its context: the component name and a slot identifier are included in the pre-image before hashing. Two constants (CHECKSUM_SLOT_PROPS and CHECKSUM_SLOT_PROPS_FROM_PARENT) name the two slots, and calculateChecksum(), verifyChecksum(), addChecksumToData(), and ChildComponentPartialRenderer thread these values through. Cross-component and cross-slot replays no longer verify.

The patch for this issue is available here for branch 2.x (and forward-ported to 3.x).

Credits

Symfony would like to thank Anthropic (via Project Glasswing) for reporting the issue and Hugo Alliaume for providing the fix.

Czego dotyczy

Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.

PlatformaPaczkaPodatne wersjePoprawka w wersji
Paczka Composer symfony/ux-live-component >= 2.8.0, < 2.36.0, >= 3.0.0, < 3.1.0 2.36.0, 3.1.0

Odnośniki

Ocena CVSS -
Wektor CVSS
CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Słabość (CWE)
CWE-345
Platforma
Composer
Paczka
symfony/ux-live-component
Ujawniono
19.06.2026
Aktualizacja
11.10.2026 10:22

Źródła i licencje

OSV / GitHub Advisory Database - GHSA-34w5-c283-j9fg - CC BY 4.0

Historia podatności: symfony/ux-live-component

Wszystkie opisane podatności tej paczki (Paczka Composer), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.

Wszystkich wpisów
6
Pierwsza → ostatnia
05.2025 06.2026
Bez poprawki
0
Wykorzystywana w atakach
0

Rozkład istotności

  • Średnia 3
  • Niska 3

Ujawnienia w latach

  1. 2025: 1
  2. 2026: 5
  1. Niska CVE-2026-49215 >= 2.22.0, < 2.36.0, >= 3.0.0, < 3.1.0 2.36.0, 3.1.0
  2. symfony/ux-live-component: LiveComponentHydrator HMAC checksum lacks component and slot binding ten wpis
    Niska CVE-2026-49212 >= 2.8.0, < 2.36.0, >= 3.0.0, < 3.1.0 2.36.0, 3.1.0
  3. Średnia CVE-2026-49210 >= 2.8.0, < 2.36.0, >= 3.0.0, < 3.1.0 2.36.0, 3.1.0
  4. Niska CVE-2026-49209 >= 2.5.0, < 2.36.0, >= 3.0.0, < 3.1.0 2.36.0, 3.1.0
  5. Średnia CVE-2026-49208 >= 2.8.0, < 2.36.0, >= 3.0.0, < 3.1.0 2.36.0, 3.1.0

Dowiedz się, które podatności dotyczą Twojej aplikacji

Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.

Podłącz swoją aplikację
Newsletter DockRay

Bezpieczeństwo aplikacji w Twojej skrzynce

Najważniejsze podatności, konkretne zalecenia i praktyczne wskazówki dla Twoich aplikacji. Wybierz technologie i śledź to, co ma znaczenie dla Twojego projektu.

  • Codzienne zestawienie nowych podatności, także krytycznych.
  • Powiadomienia o ważnych aktualizacjach.
  • Praktyczne porady o bezpieczeństwie i monitoringu aplikacji.

Pozostaw puste, aby otrzymywać informacje o wszystkich technologiach.

Zapis jest bezpłatny. Wypiszesz się jednym kliknięciem w wiadomości.