<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://cve.radiocsirt.org</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Mon, 05 Oct 2026 08:26:31 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-337945</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-337945</link>
      <description>EUVD-2026-337945</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-337945</guid>
    </item>
    <item>
      <title>fkie_cve-2026-52840</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-52840</link>
      <description>&lt;p&gt;Easy!Appointments is a self hosted appointment scheduler. In versions prior to 1.6.0, `Caldav::connect_to_server` at `application/controllers/Caldav.php:60` hands the request&amp;#39;s `caldav_url` to a Guzzle `REPORT` call without scheme or host validation. A logged-in backend user (admin, provider, or secretary) reaches loopback, RFC1918, and link-local hosts on the deployment&amp;#39;s network. The Guzzle exception path returns the upstream status code plus ~120 bytes of response body in the JSON `message` field (`Caldav.php:74-78`), so the SSRF is semi-blind. Version 1.6.0 contains a patch.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Easy!Appointments is a self hosted appointment scheduler. In versions prior to 1.6.0, `Caldav::connect_to_server` at `application/controllers/Caldav.php:60` hands the request&amp;#39;s `caldav_url` to a Guzzle `REPORT` call without scheme or host validation. A logged-in backend user (admin, provider, or secretary) reaches loopback, RFC1918, and link-local hosts on the deployment&amp;#39;s network. The Guzzle exception path returns the upstream status code plus ~120 bytes of response body in the JSON `message` field (`Caldav.php:74-78`), so the SSRF is semi-blind. Version 1.6.0 contains a patch.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-52840</guid>
    </item>
    <item>
      <title>GHSA-pm5p-7w5h-jm5q — Easy!Appointments has server-side request forgery in CalDAV connection test that exposes the deployment's internal netw…</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-pm5p-7w5h-jm5q</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Packagist: alextselegidis/easyappointments&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;`Caldav::connect_to_server` at `application/controllers/Caldav.php:60` hands the request&amp;#39;s `caldav_url` to a Guzzle `REPORT` call without scheme or host validation. A logged-in backend user (admin, provider, or secretary) reaches loopback, RFC1918, and link-local hosts on the deployment&amp;#39;s network. The Guzzle exception path returns the upstream status code plus ~120 bytes of response body in the JSON `message` field (`Caldav.php:74-78`), so the SSRF is semi-blind.&lt;/p&gt;
&lt;p&gt;### Preconditions&lt;/p&gt;
&lt;p&gt;- Backend login on the target instance. Non-admin attackers supply their own `provider_id` and pass the per-row check at `Caldav.php:52`; admins can target any row.
- Default deployment per the project&amp;#39;s own `docker-compose.yml`, which puts `mysql`, `mailpit`, `phpmyadmin`, `baikal`, `openldap`, `phpldapadmin`, and `swagger-ui` on the same docker network as `php-fpm`.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;```php
// application/controllers/Caldav.php:45-82
public function connect_to_server(): void
{
    try {
        $provider_id = request(&amp;#39;provider_id&amp;#39;);
        $user_id = session(&amp;#39;user_id&amp;#39;);&lt;/p&gt;
&lt;p&gt;if (cannot(&amp;#39;edit&amp;#39;, PRIV_USERS) &amp;amp;&amp;amp; (int) $user_id !== (int) $provider_id) {
            throw new RuntimeException(&amp;#39;You do not have the required permissions for this task.&amp;#39;);
        }&lt;/p&gt;
&lt;p&gt;$caldav_url = request(&amp;#39;caldav_url&amp;#39;);                                  // (*) attacker-controlled
        $caldav_username = request(&amp;#39;caldav_username&amp;#39;);
        $caldav_password = request(&amp;#39;caldav_password&amp;#39;);&lt;/p&gt;
&lt;p&gt;$thi…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Packagist: alextselegidis/easyappointments&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;`Caldav::connect_to_server` at `application/controllers/Caldav.php:60` hands the request&amp;#39;s `caldav_url` to a Guzzle `REPORT` call without scheme or host validation. A logged-in backend user (admin, provider, or secretary) reaches loopback, RFC1918, and link-local hosts on the deployment&amp;#39;s network. The Guzzle exception path returns the upstream status code plus ~120 bytes of response body in the JSON `message` field (`Caldav.php:74-78`), so the SSRF is semi-blind.&lt;/p&gt;
&lt;p&gt;### Preconditions&lt;/p&gt;
&lt;p&gt;- Backend login on the target instance. Non-admin attackers supply their own `provider_id` and pass the per-row check at `Caldav.php:52`; admins can target any row.
- Default deployment per the project&amp;#39;s own `docker-compose.yml`, which puts `mysql`, `mailpit`, `phpmyadmin`, `baikal`, `openldap`, `phpldapadmin`, and `swagger-ui` on the same docker network as `php-fpm`.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;```php
// application/controllers/Caldav.php:45-82
public function connect_to_server(): void
{
    try {
        $provider_id = request(&amp;#39;provider_id&amp;#39;);
        $user_id = session(&amp;#39;user_id&amp;#39;);&lt;/p&gt;
&lt;p&gt;if (cannot(&amp;#39;edit&amp;#39;, PRIV_USERS) &amp;amp;&amp;amp; (int) $user_id !== (int) $provider_id) {
            throw new RuntimeException(&amp;#39;You do not have the required permissions for this task.&amp;#39;);
        }&lt;/p&gt;
&lt;p&gt;$caldav_url = request(&amp;#39;caldav_url&amp;#39;);                                  // (*) attacker-controlled
        $caldav_username = request(&amp;#39;caldav_username&amp;#39;);
        $caldav_password = request(&amp;#39;caldav_password&amp;#39;);&lt;/p&gt;
&lt;p&gt;$thi…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-pm5p-7w5h-jm5q</guid>
    </item>
  </channel>
</rss>
