<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://cve.radiocsirt.org/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-05T05:03:33.806844+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>csirt@opendfir.org</email>
  </author>
  <link href="https://cve.radiocsirt.org" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/euvd-2026-336514</id>
    <title>EUVD-2026-336514</title>
    <updated>2026-10-05T05:03:33.810337+00:00</updated>
    <content>EUVD-2026-336514</content>
    <link href="https://cve.radiocsirt.org/vuln/euvd-2026-336514"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/fkie_cve-2026-52841</id>
    <title>fkie_cve-2026-52841</title>
    <updated>2026-10-05T05:03:33.810382+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>Easy!Appointments is a self hosted appointment scheduler. In versions prior to 1.6.0, `Google::oauth` at `application/controllers/Google.php:278` stores its URL-supplied `provider_id` in the session, and `oauth_callback` saves the issued Google OAuth token against that row without checking the caller owns the provider. Any logged-in backend user (admin, provider, or secretary) rebinds a peer provider's Google sync to a Google account they control. The peer's appointments then sync into the attacker's calendar with each customer's name and email attached as attendee data. Version 1.6.0 patches the issue.</p>
      </div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/fkie_cve-2026-52841"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/ghsa-8hm4-r66f-29wr</id>
    <title>GHSA-8hm4-r66f-29wr — Easy!Appointments: Authorization bypass in Google OAuth provider binding lets any backend user rebind a peer provider's…</title>
    <updated>2026-10-05T05:03:33.810421+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Packagist: alextselegidis/easyappointments</p>
<p>### Summary</p>
<p>`Google::oauth` at `application/controllers/Google.php:278` stores its URL-supplied `provider_id` in the session, and `oauth_callback` saves the issued Google OAuth token against that row without checking the caller owns the provider. Any logged-in backend user (admin, provider, or secretary) rebinds a peer provider's Google sync to a Google account they control. The peer's appointments then sync into the attacker's calendar with each customer's name and email attached as attendee data.</p>
<p>### Preconditions</p>
<p>- Attacker holds a backend login on the target instance (admin, provider, or secretary). The customer role cannot log in.
- The instance has Google Calendar OAuth configured at `application/config/google.php` - i.e. any deployment that uses the Google sync feature at all.
- Default deployment per the project's own `docker-compose.yml`; no non-default flags required.</p>
<p>### Details</p>
<p>```php
// application/controllers/Google.php:278-289
public function oauth(string $provider_id): void
{
    if (!$this-&gt;session-&gt;userdata('user_id')) {
        show_error('Forbidden', 403);
    }</p>
<p>// Store the provider id for use on the callback function.
    session(['oauth_provider_id' =&gt; $provider_id]);                       // (*) attacker-chosen id stored unchecked</p>
<p>// Redirect browser to google user content page.
    header('Location: ' . $this-&gt;google_sync-&gt;get_auth_url());
}
```</p>
<p>```php
// application/controllers/Google.php:305-337
public function oauth_callback(): voi…</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/ghsa-8hm4-r66f-29wr"/>
  </entry>
</feed>
