Listen to this Post
How CVE-2026-49208 Works
The vulnerability resides in the `LiveComponentHydrator` of Symfony UX LiveComponent, specifically within the `hydrateObjectValue()` method. When a `
` attribute is typed as `DateTimeInterface` and no explicit date format is configured, the hydration process falls back to using `new $className($value)` to instantiate the date object. PHP's `DateTime` and `DateTimeImmutable` constructors are inherently permissive; they accept not only absolute date strings but also relative expressions such as <code>"now"</code>, <code>"tomorrow"</code>, or <code>"+10 years"</code>. Because the `[bash]` is writable, a malicious client can inject one of these relative strings into the frontend payload. The server-side component then hydrates this payload using the permissive constructor, effectively moving the date property to an arbitrary point in time chosen by the attacker. This becomes dangerous when the component uses this date prop to gate time-based business logic—such as checking if an offer is still valid, if a trial period has expired, or if a user is authorized based on a date range. By manipulating the date, an attacker can bypass these checks entirely, as the component will evaluate the business rules using the attacker-controlled timestamp. The vulnerability is exploitable only when three conditions are met: the `[bash]` is writable, it is typed as <code>DateTimeInterface</code>, and no explicit format is configured via the `format` option. <h2 style="color: blue;">DailyCVE Form</h2> Platform: `symfony/ux-live-component` Version: >=2.8.0, <2.36.0 & >=3.0.0, <3.1.0 Vulnerability: Improper Validation of Unsafe Equivalence Severity: Low (CVSS 2.3) Date: 2026-05-29 <h2 style="color: blue;">Prediction: 2026-06-13</h2> <h2 style="color: blue;">What Undercode Say</h2> <h2 style="color: blue;">Analytics</h2> The vulnerability is rooted in the use of a permissive constructor (<code>new $className($value)</code>) for hydration, which accepts relative date strings. The fix enforces strict parsing using <code>createFromFormat(DateTimeInterface::RFC3339, ...)</code>, aligning the hydration format with the already-strict dehydration format. This ensures that only valid RFC 3339 date strings are accepted, effectively blocking relative expressions. <h2 style="color: blue;">Bash Commands & Code</h2> <h2 style="color: blue;">Check your installed version:</h2> [bash] composer show symfony/ux-live-component
Update to a patched version:
composer require symfony/ux-live-component:^2.36.0 or for 3.x composer require symfony/ux-live-component:^3.1.0
Example of a vulnerable prop definition:
use Symfony\UX\LiveComponent\Attribute\LiveProp;
class MyComponent
{
[bash] // No format specified
public ?\DateTimeInterface $expiryDate = null;
}
Example of a fixed prop definition (explicit format):
use Symfony\UX\LiveComponent\Attribute\LiveProp;
class MyComponent
{
[LiveProp(format: \DateTimeInterface::RFC3339)]
public ?\DateTimeInterface $expiryDate = null;
}
Exploit
An attacker can craft a frontend payload that sets the vulnerable `[bash]` to a relative date string like `”+10 years”` or "tomorrow". When the component hydrates this payload, the `DateTime` constructor interprets the string and moves the date forward accordingly. If the component uses this date to check, for example, whether a user’s subscription is still active, the attacker can effectively extend their subscription indefinitely or bypass expiration checks.
Protection
- Immediate: Upgrade to Symfony UX LiveComponent version `2.36.0` or
3.1.0, which contain the strict parsing fix. - Configuration: Always specify an explicit `format` option for `[bash]` properties typed as `DateTimeInterface` to enforce strict parsing.
- Validation: Implement additional server-side validation on date inputs to ensure they fall within expected ranges, independent of the hydration process.
- Monitoring: Review application logic that uses date props for authorization or time-gating to ensure no other vulnerable props exist.
Impact
- Integrity: Limited. An attacker can manipulate time-based business logic, potentially bypassing expiration checks, trial periods, or date-gated features.
- Availability: Limited. The vulnerability does not directly cause denial of service.
- Confidentiality: None. No data exposure occurs.
- Scope: The vulnerability affects all applications using the affected versions of `symfony/ux-live-component` with writable, format-less `DateTimeInterface` props that are used in time-sensitive logic.
🎯Let’s Practice Exploiting & Learn Patching For Free:
🎓 Live Courses & Certifications:
Join Undercode Academy for Verified Certifications
🚀 Request a Custom Project:
Secure, high-velocity infrastructure and disruptive technological engineering. Contact our engineering team for high-tier development and proprietary systems:
[email protected]
💎 Smart Architecture | 🛡️ Secure by Design | ⭐ Trusted by Thousands
Sources:
Reported By: github.com
Extra Source Hub:
Undercode

