{"id":"CVE-2026-110100","revision":null,"records":[{"revision":"15fa3e72c26c4da38f2b9496617f43d0","observedAt":"2026-10-26T20:35:31.018+00:00","statement":{"source":"cve-program","id":"CVE-2026-110100","aliases":[],"title":"Jorani before 1.0.4 Missing Authorization and SSRF via Contracts::import()","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.","state":0,"publishedAt":"2026-10-13T16:53:04.371+00:00","modifiedAt":"2026-10-26T19:39:49.604+00:00","affected":[{"ecosystem":"Vendor product","name":"Jorani","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"Jorani\",\n                    \"product\": \"Jorani\",\n                    \"packageURL\": \"pkg:github/jorani/jorani\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"versions\": [\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"1.0.4\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        }\n                    ],\n                    \"repo\": \"https://github.com/jorani/jorani\"\n                }"}],"metrics":[{"system":"CVSS 4.0","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","score":5.3,"severity":"MEDIUM"},{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N","score":5.4,"severity":"MEDIUM"}],"references":["https://github.com/jorani/jorani/issues/426","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/releases/tag/v1.0.4","https://www.vulncheck.com/advisories/jorani-before-1.0.4-missing-authorization-and-ssrf-via-contracts-import"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-110100","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-110100","identifiers":["CVE-2026-110100"]},"retained":false,"historicalAffected":[]}],"coverage":[{"source":"cisa-kev:global","scope":"Complete CISA KEV catalog; all vendors. Missing entries do not establish absence of exploitation.","generation":"2026-11-03T16:59:18.5299430+00:00","complete":true,"records":1766,"lastAttemptAt":"2026-11-03T16:59:18.529943+00:00","lastSuccessAt":"2026-11-03T16:59:18.8102394+00:00","error":null,"lastVerifiedAt":"2026-11-03T16:59:18.8102398+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"cve-program","scope":"Official CVE Program baseline and cumulative hourly delta; all vendors, published and rejected records","generation":"cve-350720d872b2dd58a66b9473e90878a5b63328f41c4a49b3398eca1809d74435-0269b8d7682202091eaae4604cc4d6df92b387fe54f25df430620e54de15c3a1","complete":true,"records":418443,"lastAttemptAt":"2026-11-03T16:57:21.5599084+00:00","lastSuccessAt":"2026-11-03T16:57:21.4270626+00:00","error":null,"lastVerifiedAt":"2026-11-03T16:57:21.5599084+00:00","snapshotPublishedAt":"2026-11-03T16:45:20+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"euvd","scope":"Rolling EUVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global EUVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-b15f99a450c04d65af5eb1d15f2b96d5","complete":false,"records":13571,"lastAttemptAt":"2026-11-03T17:12:01.1906249+00:00","lastSuccessAt":"2026-11-03T17:12:01.186+00:00","error":"18 identifier lookups failed; latest failures include HTTP 403. Other identifiers were checked independently.","lastVerifiedAt":"2026-11-03T17:12:01.186+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13121,"expectedIdentifiers":13640,"failedIdentifiers":18},{"source":"first-epss:nuget","scope":"FIRST EPSS for explicit CVE aliases in the collected public NuGet archive. Not a global EPSS backfill.","generation":"2026-11-03T16:59:18.5299430+00:00","complete":true,"records":1096,"lastAttemptAt":"2026-11-03T16:59:18.529943+00:00","lastSuccessAt":"2026-11-03T16:59:22.2059297+00:00","error":null,"lastVerifiedAt":"2026-11-03T16:59:22.2059354+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"nvd","scope":"Rolling NVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global NVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-6a895f7e5a054c04bc10ef9e83a6eaa4","complete":false,"records":13583,"lastAttemptAt":"2026-11-03T16:59:47.6623244+00:00","lastSuccessAt":"2026-11-03T16:59:47.658+00:00","error":null,"lastVerifiedAt":"2026-11-03T16:59:47.658+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13539,"expectedIdentifiers":13640,"failedIdentifiers":0},{"source":"osv:Go","scope":"Complete OSV Go ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"go-a7ae44a7627a0f908963dce006b7ad45c2beefb8ad1ac8c59fbef0a9b8b9355b","complete":true,"records":9816,"lastAttemptAt":"2026-11-03T16:59:18.3616813+00:00","lastSuccessAt":"2026-11-03T16:59:18.1228493+00:00","error":null,"lastVerifiedAt":"2026-11-03T16:59:18.3616813+00:00","snapshotPublishedAt":"2026-11-03T16:48:50+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:NuGet","scope":"Complete OSV NuGet ecosystem archive, including GitHub Advisory Database records; NuGet version matching only","generation":"nuget-61f7ba44b41a53a64a2cd20255c6669996c2b1899c76883724b9c446b21944b4","complete":true,"records":1968,"lastAttemptAt":"2026-11-03T16:57:26.3005612+00:00","lastSuccessAt":"2026-11-03T16:57:26.1584267+00:00","error":null,"lastVerifiedAt":"2026-11-03T16:57:26.3005612+00:00","snapshotPublishedAt":"2026-11-03T16:48:49+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:crates.io","scope":"Complete OSV crates.io ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"crates.io-3359d81af1421c95c0dcce7502f353281abb1831e10fae4b0d24c05db04ca535","complete":true,"records":3036,"lastAttemptAt":"2026-11-03T16:59:18.4763123+00:00","lastSuccessAt":"2026-11-03T12:59:21.4632005+00:00","error":null,"lastVerifiedAt":"2026-11-03T16:59:18.4763123+00:00","snapshotPublishedAt":"2026-11-03T12:48:07+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:npm","scope":"Complete OSV npm ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"npm-67b2a0661b8466943b87d7107c3486ef5a02e65b0fefa345846d904b0bd33510","complete":true,"records":231087,"lastAttemptAt":"2026-11-03T16:59:09.35834+00:00","lastSuccessAt":"2026-11-03T16:59:08.0228046+00:00","error":null,"lastVerifiedAt":"2026-11-03T16:59:09.35834+00:00","snapshotPublishedAt":"2026-11-03T16:33:32+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null}]}