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.
https://github.com/jorani/jorani/releases/tag/v1.0.4
https://github.com/jorani/jorani/issues/426
https://github.com/jorani/jorani/commit/59c403224401824489ec662934f71c90d27f614c
https://github.com/jorani/jorani/blob/v1.0.2/application/controllers/Contracts.php#L358-L375
Published: 2026-10-13
Updated: 2026-10-13
Base Score: 5.5
Vector: CVSS2#AV:N/AC:L/Au:S/C:P/I:P/A:N
Severity: Medium
Base Score: 5.4
Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
Severity: Medium
Base Score: 5.3
Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Severity: Medium