{"items":[{"id":"NVI-00007321","kind":"vulnerability","title":"alextselegidis/easyappointments is Vulnerable to CSRF Protection Bypass","revision":4,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected.","NVD lastModified does not establish freshness of every associated CPE record."],"lifecycle":"active","identifiers":["GHSA-54v4-4685-vwrj","CVE-2026-23622"],"plain_summary":"OSV carries this publisher advisory for alextselegidis/easyappointments. This is an aggregated source copy; consult the original publisher and compare update dates.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-1634535c0164458a628b91ae203774bf"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-06-17T10:21:51.310Z","value":"8.8 HIGH (3.1)","meaning":"nvd@nist.gov severity; no combined Null risk score.","source_id":"sr-4e5ff841873876f160e1cddce1388432"},{"kind":"CVSS","as_of":"2026-06-17T10:21:51.310Z","value":"7.4 HIGH (4.0)","meaning":"security-advisories@github.com severity; no combined Null risk score.","source_id":"sr-4e5ff841873876f160e1cddce1388432"},{"kind":"EPSS","as_of":"2026-11-01T12:00:16.000Z","value":"0.231%","meaning":"FIRST EPSS model v2026.06.15; exploitation probability over 30 days, percentile 0.13959. Missing scores are unknown.","source_id":"sr-1634535c0164458a628b91ae203774bf"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-d75f6a71ee4debbce7597ec90ac474e5","url":"https://github.com/advisories/GHSA-54v4-4685-vwrj","basis":"vendor_advisory","notes":"GitHub-origin advisory, CC-BY-4.0; OSV is an aggregate copy, not independent corroboration.","title":"GHSA-54v4-4685-vwrj","publisher":"GitHub Advisory Database via OSV","observed_at":"2026-10-31T21:41:49.677Z"},{"id":"sr-4e5ff841873876f160e1cddce1388432","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-23622","basis":"official_catalog","notes":"This product uses data from the NVD API but is not endorsed or certified by the NVD.","title":"CVE-2026-23622","publisher":"NIST National Vulnerability Database","observed_at":"2026-11-01T01:40:47.597Z"},{"id":"sr-1634535c0164458a628b91ae203774bf","url":"https://www.first.org/epss/data.html","basis":"official_catalog","notes":"FIRST EPSS; probability of exploitation in the next 30 days, not local compromise. Dataset date/model retained; FIRST services terms apply.","title":"CVE-2026-23622","publisher":"FIRST EPSS","observed_at":"2026-11-01T14:28:32.270Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-d75f6a71ee4debbce7597ec90ac474e5"],"technology":"alextselegidis/easyappointments","known_exclusions":[],"conditions_summary":"### Summary\n`application/core/EA_Security.php::csrf_verify()` only enforces CSRF for POST requests and returns early for non-POST methods. Several application endpoints perform state-changing operations while accepting parameters from GET (or $_REQUEST), so an attacker can perform CSRF by forcing a victim's browser to issue a crafted GET request. Impact: creation of admin accounts, modification of admin email/password, and full admin account takeover\n\n### Details\n\nin https://github.com/alextselegidis/easyappointments/blob/41c9b93a5a2c185a914f204412324d8980943fd5/application/core/EA_Security.php#L52\n\n* **Repository / tested commit:** `alextselegidis/easyappointments` — commit `41c9b93a5a2c185a914f204412324d8980943fd5`.\n* **Vulnerable file & function:** `application/core/EA_Security.php::csrf_verify()` — around line 52. Link: `.../application/core/EA_Security.php#L52`.\n* **Root cause:** The function early-returns when the request is not `POST`:\n\n```php\n// vulnerable snippet\nif (strtoupper($_SERVER['REQUEST_METHOD']) !== 'POST') {\n    return $this->csrf_set_cookie();\n}\n```\n\nBecause of this, non-POST requests (GET/PUT/DELETE/etc.) never reach token validation. When application controll","public_affected_ranges":["ECOSYSTEM: introduced 0; last_affected 1.5.2"]}],"null_published_at":"2026-11-03T17:49:18.501Z","source_updated_at":"2026-02-03T03:17:26.680Z","source_disclosed_at":"2026-01-15T20:11:23.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Dated EPSS estimate updated; this is not a new disclosure or proof of exploitation.","null_first_observed_at":"2026-10-31T21:41:49.677Z"},{"id":"NVI-00007321","kind":"vulnerability","title":"alextselegidis/easyappointments is Vulnerable to CSRF Protection Bypass","revision":3,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected.","NVD lastModified does not establish freshness of every associated CPE record."],"lifecycle":"active","identifiers":["GHSA-54v4-4685-vwrj","CVE-2026-23622"],"plain_summary":"OSV carries this publisher advisory for alextselegidis/easyappointments. This is an aggregated source copy; consult the original publisher and compare update dates.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-0d28fbfc6d04c886f21ea4f1e4ae9d8c"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-06-17T10:21:51.310Z","value":"8.8 HIGH (3.1)","meaning":"nvd@nist.gov severity; no combined Null risk score.","source_id":"sr-4e5ff841873876f160e1cddce1388432"},{"kind":"CVSS","as_of":"2026-06-17T10:21:51.310Z","value":"7.4 HIGH (4.0)","meaning":"security-advisories@github.com severity; no combined Null risk score.","source_id":"sr-4e5ff841873876f160e1cddce1388432"},{"kind":"EPSS","as_of":"2026-10-31T12:00:27.000Z","value":"0.231%","meaning":"FIRST EPSS model v2026.06.15; exploitation probability over 30 days, percentile 0.13962. Missing scores are unknown.","source_id":"sr-0d28fbfc6d04c886f21ea4f1e4ae9d8c"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-d75f6a71ee4debbce7597ec90ac474e5","url":"https://github.com/advisories/GHSA-54v4-4685-vwrj","basis":"vendor_advisory","notes":"GitHub-origin advisory, CC-BY-4.0; OSV is an aggregate copy, not independent corroboration.","title":"GHSA-54v4-4685-vwrj","publisher":"GitHub Advisory Database via OSV","observed_at":"2026-10-31T21:41:49.677Z"},{"id":"sr-4e5ff841873876f160e1cddce1388432","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-23622","basis":"official_catalog","notes":"This product uses data from the NVD API but is not endorsed or certified by the NVD.","title":"CVE-2026-23622","publisher":"NIST National Vulnerability Database","observed_at":"2026-11-01T01:40:47.597Z"},{"id":"sr-0d28fbfc6d04c886f21ea4f1e4ae9d8c","url":"https://www.first.org/epss/data.html","basis":"official_catalog","notes":"FIRST EPSS; probability of exploitation in the next 30 days, not local compromise. Dataset date/model retained; FIRST services terms apply.","title":"CVE-2026-23622","publisher":"FIRST EPSS","observed_at":"2026-10-31T22:06:15.375Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-d75f6a71ee4debbce7597ec90ac474e5"],"technology":"alextselegidis/easyappointments","known_exclusions":[],"conditions_summary":"### Summary\n`application/core/EA_Security.php::csrf_verify()` only enforces CSRF for POST requests and returns early for non-POST methods. Several application endpoints perform state-changing operations while accepting parameters from GET (or $_REQUEST), so an attacker can perform CSRF by forcing a victim's browser to issue a crafted GET request. Impact: creation of admin accounts, modification of admin email/password, and full admin account takeover\n\n### Details\n\nin https://github.com/alextselegidis/easyappointments/blob/41c9b93a5a2c185a914f204412324d8980943fd5/application/core/EA_Security.php#L52\n\n* **Repository / tested commit:** `alextselegidis/easyappointments` — commit `41c9b93a5a2c185a914f204412324d8980943fd5`.\n* **Vulnerable file & function:** `application/core/EA_Security.php::csrf_verify()` — around line 52. Link: `.../application/core/EA_Security.php#L52`.\n* **Root cause:** The function early-returns when the request is not `POST`:\n\n```php\n// vulnerable snippet\nif (strtoupper($_SERVER['REQUEST_METHOD']) !== 'POST') {\n    return $this->csrf_set_cookie();\n}\n```\n\nBecause of this, non-POST requests (GET/PUT/DELETE/etc.) never reach token validation. When application controll","public_affected_ranges":["ECOSYSTEM: introduced 0; last_affected 1.5.2"]}],"null_published_at":"2026-11-02T20:21:07.850Z","source_updated_at":"2026-02-03T03:17:26.680Z","source_disclosed_at":"2026-01-15T20:11:23.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Source facts changed; compare the preserved prior revision.","null_first_observed_at":"2026-10-31T21:41:49.677Z"},{"id":"NVI-00007321","kind":"vulnerability","title":"alextselegidis/easyappointments is Vulnerable to CSRF Protection Bypass","revision":2,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-54v4-4685-vwrj","CVE-2026-23622"],"plain_summary":"OSV carries this publisher advisory for alextselegidis/easyappointments. This is an aggregated source copy; consult the original publisher and compare update dates.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-0d28fbfc6d04c886f21ea4f1e4ae9d8c"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"EPSS","as_of":"2026-10-31T12:00:27.000Z","value":"0.231%","meaning":"FIRST EPSS model v2026.06.15; exploitation probability over 30 days, percentile 0.13962. Missing scores are unknown.","source_id":"sr-0d28fbfc6d04c886f21ea4f1e4ae9d8c"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-d75f6a71ee4debbce7597ec90ac474e5","url":"https://github.com/advisories/GHSA-54v4-4685-vwrj","basis":"vendor_advisory","notes":"GitHub-origin advisory, CC-BY-4.0; OSV is an aggregate copy, not independent corroboration.","title":"GHSA-54v4-4685-vwrj","publisher":"GitHub Advisory Database via OSV","observed_at":"2026-10-31T21:41:49.677Z"},{"id":"sr-0d28fbfc6d04c886f21ea4f1e4ae9d8c","url":"https://www.first.org/epss/data.html","basis":"official_catalog","notes":"FIRST EPSS; probability of exploitation in the next 30 days, not local compromise. Dataset date/model retained; FIRST services terms apply.","title":"CVE-2026-23622","publisher":"FIRST EPSS","observed_at":"2026-10-31T22:06:15.375Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-d75f6a71ee4debbce7597ec90ac474e5"],"technology":"alextselegidis/easyappointments","known_exclusions":[],"conditions_summary":"### Summary\n`application/core/EA_Security.php::csrf_verify()` only enforces CSRF for POST requests and returns early for non-POST methods. Several application endpoints perform state-changing operations while accepting parameters from GET (or $_REQUEST), so an attacker can perform CSRF by forcing a victim's browser to issue a crafted GET request. Impact: creation of admin accounts, modification of admin email/password, and full admin account takeover\n\n### Details\n\nin https://github.com/alextselegidis/easyappointments/blob/41c9b93a5a2c185a914f204412324d8980943fd5/application/core/EA_Security.php#L52\n\n* **Repository / tested commit:** `alextselegidis/easyappointments` — commit `41c9b93a5a2c185a914f204412324d8980943fd5`.\n* **Vulnerable file & function:** `application/core/EA_Security.php::csrf_verify()` — around line 52. Link: `.../application/core/EA_Security.php#L52`.\n* **Root cause:** The function early-returns when the request is not `POST`:\n\n```php\n// vulnerable snippet\nif (strtoupper($_SERVER['REQUEST_METHOD']) !== 'POST') {\n    return $this->csrf_set_cookie();\n}\n```\n\nBecause of this, non-POST requests (GET/PUT/DELETE/etc.) never reach token validation. When application controll","public_affected_ranges":["ECOSYSTEM: introduced 0; last_affected 1.5.2"]}],"null_published_at":"2026-10-31T22:13:44.233Z","source_updated_at":"2026-02-03T03:17:26.680Z","source_disclosed_at":"2026-01-15T20:11:23.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Dated EPSS estimate updated; this is not a new disclosure or proof of exploitation.","null_first_observed_at":"2026-10-31T21:41:49.677Z"}],"next_cursor":null,"snapshot_revision":"44495"}