CVE-2026-110100
5.4MediumPublished 13 Oct 2026 · NVD status: Deferred · AI triage by gemini-3.8-flash
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
- Impact
- Limited impact
- Weakness
- CWE-862
Impact
Authenticated attackers can overwrite contract non-working days and trigger blind SSRF against internal network resources. They need valid credentials to access the application and send malicious POST requests.
Root cause
The Contracts::import() endpoint fails to verify user authorization and fetches user-supplied URLs with get_headers() and fopen() without validation.
Affected systems
Jorani versions before 1.0.4
CVSS v3.1 · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
Fix & remediation
Upgrade Jorani to version 1.0.4 or later. If updating immediately is not possible, restrict access to the Contracts/import endpoint at your reverse proxy or web server.
$ git checkout v1.0.4AI-suggested. Run it in staging first and check it against the vendor advisory. Why?
NVD description
Jorani before 1.0.4 contains a missing authorization vulnerability in Contracts::import() that allows any authenticated user to import days off into any contract from an arbitrary URL. Attackers can submit a contract id and URL via POST to overwrite non-working-day calendars and abuse get_headers() and fopen() for server-side request forgery against internal hosts.
References
- https://github.com/jorani/jorani/blob/v1.0.2/application/controllers/Contracts.php#L358-L375
- https://github.com/jorani/jorani/commit/59c403224401824489ec662934f71c90d27f614c
- https://github.com/jorani/jorani/issues/426
- https://github.com/jorani/jorani/releases/tag/v1.0.4
- https://www.vulncheck.com/advisories/jorani-before-1.0.4-missing-authorization-and-ssrf-via-contracts-import