---
id: "CVE-2026-121589"
kind: "vulnerability"
aliases: ["CVE-2026-121589"]
title: "spatie url-signer: incorrect type conversion in URL validation bypasses signed-URL checks"
severity: "medium"
cvss: 5.5
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["laravel", "package", "php", "spatie-url-signer"]
not_affected_if: ["does-not-use-url-signer"]
published_at: "2026-11-04T00:17:27+00:00"
first_seen_at: "2026-11-04T00:46:18+00:00"
updated_at: "2026-11-04T00:48:01+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-121589", "first_seen_at": "2026-11-04T00:46:18+00:00"}]
---

# spatie url-signer: incorrect type conversion in URL validation bypasses signed-URL checks

A weakness in the URL validation function of the spatie url-signer PHP library, up to version 2.1.3, mishandles the expires argument through incorrect type conversion. A remote attacker may be able to use a signed URL beyond its intended validity period.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed version of spatie/url-signer in `composer.lock` or with `composer show spatie/url-signer`
- Look for calls to `AbstractUrlSigner::validate` or signed URLs that use an `expires` parameter

## Fix

- spatie/url-signer: upgrade to `2.1.4`

## Timeline

- 2026-11-04T00:46:18+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-121589

## Documents

- [fix] Patch: github.com https://github.com/spatie/url-signer/commit/86af3355388210668f6bfbe9007bd6545d4942ad
- [fix] Release notes: github.com https://github.com/spatie/url-signer/releases/tag/2.1.4

## From the sources

A weakness has been identified in spatie url-signer up to 2.1.3. Affected is the function AbstractUrlSigner::validate of the file AbstractUrlSigner.php of the component URL Validation. This manipulation of the argument expires causes incorrect type conversion. It is possible to initiate the attack remotely. The exploit has been made available to the public and could be used for attacks. Upgrading to version 2.1.4 is able to address this issue. Patch name: 86af3355388210668f6bfbe9007bd6545d4942ad. It is recommended to upgrade the affected component.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
