{"answers":{"affected":"","exploited":"There is no known exploitation of CVE-2026-55250 in the wild and no public exploit code.","fix":"No fix has been published for CVE-2026-55250 yet. Limit exposure of the affected software until one is available.","what":"CVE-2026-55250 is a high-severity authentication bypass vulnerability in macropay-solutions maravel-framework, published on 8 Sep 2026. An attacker can exploit it over the internet without logging in, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-55250 and fix it if it is affected.\n\nWhat it is: CVE-2026-55250 is a high-severity authentication bypass vulnerability in macropay-solutions maravel-framework, published on 8 Sep 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2026-55250 in the wild and no public exploit code.\n\nAffected product: macropay-solutions maravel-framework. No package-level version data is available, so check the vendor advisory linked from the reference page.\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-55250/ (Markdown: https://insights.sbomify.com/CVE-2026-55250/index.md)","id":"CVE-2026-55250","markdown":"https://insights.sbomify.com/CVE-2026-55250/index.md","name":"CVE-2026-55250","record":{"aliases":[],"analysis":{"component_type":"library","fix_type":"upgrade","impacts":["account_takeover","security_bypass"],"network_reachable":"yes","non_default_config":true,"product_category":"PHP web framework","requires_auth":"none","summary":"Attackers can replay revoked JWT tokens after cache eviction or flushing, bypassing authentication in Maravel-Framework applications using tagged caches.","user_interaction":"not_required","vuln_class":"auth_bypass"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[],"cvss":{"score":8.7,"severity":"high","source":"cna","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","version":"4.0"},"cwes":[{"id":"CWE-672","name":"Operation on a Resource after Expiration or Release"},{"id":"CWE-613","name":"DEPRECATED: Insufficient Session Expiration"},{"id":"CWE-294","name":"Authentication Bypass by Capture-replay"}],"description":"Maravel, a PHP framework oriented towards dependency injection, prior to version 10.74.0 has a high-severity Token Replay Vulnerability arising from a structural lifecycle mismatch between stateless token validation engines and high-performance relational caching layers. Any application with low cache memory that causes premature eviction to free up memory and applications running macropay-solutions/maravel-framework that utilize tymon/jwt-auth for API token authentication and blacklist management or any other package that does the same may be affected. This architectural risk might also impact native Laravel applications utilizing cache tags under specific volatile or eviction-capped environments. tymon/jwt-auth automatically probes for cache tag support. If found, it forcefully wraps 14-day token blacklist entries (jti) inside a relational tymon.jwt tag. In environments where the O(1) Atomic Lazy Eviction model is active — either natively inside Maravel-Framework v20.x or manually backported into v10.x via the explicit DI container singletons provided in PR #104 (App\\Cache\\TaggedCache and App\\Cache\\TagSet) — a strict global tracking ceiling (Container::TAGGED_CACHE_TTL_CAP_SECONDS) of 7,200 seconds (2 hours) is enforced to secure the system against memory index bloat. This ceiling forcefully truncates the 14-day blacklist lifespan down to a maximum of 2 hours, after which individual tracking keys naturally expire and disappear from the active cache window. Furthermore, because the optimized engine implements a generational version matrix to achieve O(1) flush speeds, any programmatic or manual invocation of a tag flush or reset (e.g., Cache::tags([...])-\u003eflush()) instantly bumps the internal atomic master version pointer. This shifts the computed cryptographic composite hash (sha1($this-\u003etags-\u003egetNamespace())) for all overlapping components, rendering the entire existing index immediately unreachable. Consequently, through either natural 2-hour expiration or an intervening tag flush execution (like the cache naturally cleaning old values to free up memory), the invalidation state records are entirely wiped out. Because the tokens' physical cryptographic signatures remain structurally valid for up to 14 days, stolen, hijacked, or legitimately logged-out tokens are instantly and silently resurrected across the entire API gateway, leaving the application critically vulnerable to widespread Token Replay Attacks. Because this issue is caused by an upstream architectural assumption within the tymon/jwt-auth package rather than a core defect inside the framework, there is no direct framework version upgrade that can safely bypass this lifecycle collision without breaking business cache recycling bounds. Maravel version 10.74.0 introduced a way to backport the new fixed tagged cache from 20.x into 10.x by resolving TagSet and TaggedCache from DI, which is how this latent architectural lifecycle vulnerability was discovered. Users must apply the decoupled configuration workaround outlined below. As a workaround, make sure that cache memory size does not generate early natural evictions from cache to free up space, deleting blacklisted jwt ids before they expire. Applications must decouple flat authentication vectors from the relational tagging subsystem. This forces token identifiers to write directly to the primary cache keyspace as flat, un-tagged key-value pairs where they securely retain their unclipped 14-day lifecycle.","ecosystems":[],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":null,"headline":"Maravel-Framework Token Replay Vulnerability via Premature JWT Blacklist Eviction in Tagged Caches","id":"CVE-2026-55250","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":null,"products":[],"type":"auth_bypass","year":"2026"},"n_packages":0,"n_references":3,"next":{"headline":"Code injection in devicetype-library","id":"CVE-2026-55251"},"packages":[],"prev":{"headline":"@rtk-ai/rtk-rewrite: OpenClaw Rewrite Plugin Command Injection via execSync Template String","id":"CVE-2026-55249"},"products":["maravel-framework"],"published":"2026-09-08","related":[],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"yes","exploitation":"none","technical_impact":"partial"},"state":"PUBLISHED","updated":"2026-09-09","vendors":["macropay-solutions"]},"summary":"Attackers can replay revoked JWT tokens after cache eviction or flushing, bypassing authentication in Maravel-Framework applications using tagged caches.","url":"https://insights.sbomify.com/CVE-2026-55250/"}