Bookly-Sicherheitshinweis
Wenn Sie von mir eine E-Mail mit einem Verweis auf diese Seite erhalten haben, dann deshalb,
weil Ihre Website offenbar eine Version von Bookly einsetzt (das
WordPress-Termin-Buchungs-Plugin bookly-responsive-appointment-booking-tool), die in den
betroffenen Versionsbereich einer bekannten Sicherheitslücke fällt. Diese Seite erklärt, worum
es geht, wie Sie Ihre Version prüfen, wie Sie aktualisieren und welchen einen Folgeschritt Sie
danach durchführen sollten.
Es geht um CVE-2026-13395, eine nicht authentifizierte SQL-Injection im Frontend-Buchungsablauf des Plugins. Betroffen sind die Versionen 11.3 bis 27.7; behoben ist sie in 27.8, veröffentlicht am 10. Juli 2026. Wenn Sie eine betroffene Version einsetzen, aktualisieren Sie Bookly auf 27.8 oder neuer (27.9 ist die aktuelle Version und enthält die Korrektur ebenfalls). Es gibt keinen Hinweis darauf, dass diese Lücke ausgenutzt wird, weder gegen Ihre Website noch anderswo. Diese Seite ist eine vorsorgliche Information, kein Vorfallsbericht.
Anders als bei einigen meiner anderen Hinweise hängt dieser nicht von Ihrer Konfiguration ab. Es muss keine Einstellung aktiviert sein, damit die Lücke erreichbar ist: Der betroffene Anfragepfad steht nicht angemeldeten Besuchern in einer gewöhnlichen Installation offen. Wenn Ihre Bookly-Version im betroffenen Bereich liegt, sollten Sie zeitnah aktualisieren.
Es handelt sich um eine Lücke im Plugin, nicht im WordPress-Kern. Ein vollständig aktuelles WordPress schützt Sie nicht, wenn das Bookly-Plugin selbst auf einer betroffenen Version steht.
Ist diese Nachricht echt?
Ja. Dies ist ein Hinweis nach dem Grundsatz der verantwortungsvollen Offenlegung von einem unabhängigen Sicherheitsforscher. Ich bitte Sie nicht um Geld, Passwörter oder Zugang zu Ihrer Website, und ich habe nicht versucht, in sie einzudringen, etwas an sie zu senden oder etwas auszunutzen.
Ich habe lediglich öffentlich sichtbare Dateien betrachtet, die Ihre Website jedem Besucher ausliefert (genauso, wie Ihre Startseite öffentlich ist), und die Versionsnummer notiert, die das Bookly-Plugin veröffentlicht. Insbesondere habe ich nichts an Ihr Buchungsformular oder an den betroffenen Anfragepfad gesendet, und diese Prüfung berührt weder Ihre Daten noch Ihren Adminbereich oder einen anderen privaten Teil Ihrer Website (mehr dazu unter Was ich getan und nicht getan habe).
Wenn Sie überprüfen möchten, wer ich bin, finden Sie die Kontaktdaten am Ende dieser Seite und auf der Seite Über.
Warum das wichtig ist
Bookly ist eines der meistgenutzten Terminbuchungs-Plugins für WordPress, seit 2014 im offiziellen Verzeichnis und auf Zehntausenden Websites im Einsatz. Es stellt im Frontend Ihrer Website ein Buchungsformular bereit, über das Besucher eine Leistung, einen Mitarbeiter und einen Termin auswählen können, ohne ein Konto zu benötigen.
In betroffenen Versionen wird einer der Werte, die dieses Formular zurücksendet, die Kennung des vom Besucher ausgewählten Mitarbeiters, genau so gespeichert, wie er eintrifft, ohne Prüfung, und später direkt in eine Datenbankabfrage eingesetzt, statt als Parameter übergeben zu werden. Wer statt einer gewöhnlichen Mitarbeiterkennung einen präparierten Wert sendet, kann damit die Bedeutung dieser Abfrage verändern. Praktisch heißt das: Jemand ohne Konto und ohne Anmeldung könnte Daten aus Ihrer Datenbank auslesen, die die Abfrage nie zurückgeben sollte, einschließlich der Passwort-Hashes Ihrer WordPress-Benutzerkonten.
Zwei Dinge sind in beide Richtungen klar zu benennen.
Erstens, zur Einordnung: Dies ist ein Datenauslese-Problem, keine Übernahme des Servers oder des Administratorkontos. Es erlaubt für sich genommen weder, Code auf Ihrem Server auszuführen, noch, sich in Ihrem Adminbereich anzumelden. Ein Passwort-Hash ist kein Passwort; er muss erst geknackt werden, bevor daraus Zugang wird. Und es gibt keine Hinweise auf eine Ausnutzung: Die CVE-vergebende Stelle hat keine Bewertungszahl veröffentlicht, die Lücke steht nicht im KEV-Katalog der US-Behörde CISA, ihr EPSS-Wert (Ausnutzungswahrscheinlichkeit) ist nicht vergeben, und mir sind keinerlei Berichte über Ausnutzung bekannt.
Zweitens, ohne Verharmlosung: Weder eine Anmeldung noch ein Nonce noch irgendeine Plugin-Einstellung steht zwischen einem anonymen Besucher und diesem Pfad. Er ist in einer Standardinstallation des kostenlosen Plugins erreichbar. Deshalb lautet die Empfehlung, zeitnah zu aktualisieren, statt die Sache in das nächste Wartungsfenster zu schieben.
Wenn meine E-Mail diese Lücke genannt hat, bedeutet das, dass die von Ihrer Website gemeldete Version in den betroffenen Bereich fällt. Ich habe nicht geprüft, ob Ihre konkrete Website ausnutzbar ist; beobachtet habe ich ausschließlich die Version.
Bin ich betroffen?
Es kommt auf eine Frage an: Welche Bookly-Version setzen Sie ein? Sie müssen mir das nicht glauben; es gibt zwei Wege, das zu prüfen.
Im WordPress-Adminbereich (maßgeblich):
- Melden Sie sich in Ihrem WordPress-Dashboard an (meist unter
ihredomain.de/wp-admin). - Gehen Sie zu Plugins und dann Installierte Plugins.
- Suchen Sie Bookly, den Eintrag mit dem Ordner
bookly-responsive-appointment-booking-tool, und lesen Sie die Version unter dem Namen ab.
Aus der öffentlichen Manifestdatei (ohne Anmeldung): Öffnen Sie
ihredomain.de/wp-content/plugins/bookly-responsive-appointment-booking-tool/readme.txt im
Browser. Die Zeile Stable tag: weiter oben nennt die Version, die Ihre Installation
meldet; genau diese öffentliche Datei habe ich gelesen.
Wenden Sie dann diese Regel an, und beachten Sie: Versionen werden numerisch verglichen, nicht alphabetisch:
- 11.3 bis 27.7: betroffen. Jetzt aktualisieren.
- 27.8 oder neuer: bereits behoben. Das schließt 27.9 ein, das die Korrektur behält.
- Älter als 11.3: von diesem Problem nicht betroffen. Die unsichere Abfragekonstruktion gab es in diesen Versionen nicht: die Mitarbeiterkennungen liefen dort über den parametrisierten Abfrage-Baukasten des Plugins. Eine so alte Version hat viele andere Gründe für ein Update, aber dieser Hinweis gehört nicht dazu.
- Lesen Sie Versionsnummern nicht als Text. Bookly hat eine zweistellige Hauptversion, deshalb
führt die Textsortierung gleich zweimal in die Irre:
3.3wirkt alphabetisch größer als27.8, ist aber weit älter, und27.10wirkt kleiner als27.7, ist aber neuer. Vergleichen Sie Zahl für Zahl.
Ein Hinweis zu Booklys Erweiterungen. Booklys kostenpflichtige Erweiterungen (Pro und die
verschiedenen bookly-addon-*-Pakete) werden als eigene Plugins mit eigenen
Versionsnummern installiert, und ihre Asset-URLs können die Version des Kern-Plugins tragen
statt ihrer eigenen. Maßgeblich für diesen Hinweis ist die Version des Kern-Plugins Bookly,
ermittelt über einen der beiden obigen Wege, nicht eine Zahl, die von den Dateien einer
Erweiterung stammt.
Falls Sie von außen keine Bookly-Dateien sehen. Bookly hat eine Einstellung, die steuert, ob seine Skripte und Stylesheets auf jeder Seite geladen werden oder nur auf den Seiten mit einem Buchungsformular. Steht sie auf Letzterem, ist von außen deutlich weniger vom Plugin sichtbar. Diese Einstellung beeinflusst nur, was ein Besucher sehen kann; sie hat keinen Einfluss darauf, ob die Lücke vorhanden und erreichbar ist. Prüfen Sie Ihre Version im Adminbereich.
Wie Sie aktualisieren
Der sicherste Weg führt über WordPress selbst und setzt ein vorheriges Backup voraus:
- Sichern Sie Ihre Website (Dateien und Datenbank), bevor Sie Änderungen vornehmen. Die meisten Hoster bieten Backups per Klick, alternativ hilft ein Backup-Plugin.
- Gehen Sie im WordPress-Adminbereich zu Dashboard und dann Aktualisierungen oder zu Plugins und dann Installierte Plugins. Wird ein Bookly-Update angezeigt, installieren Sie es von dort.
- Wenn Sie die Kommandozeile bevorzugen, tut WP-CLI dasselbe:
wp plugin update bookly-responsive-appointment-booking-tool. - Erscheint kein Update, holen Sie die aktuelle Version direkt von der Plugin-Seite im WordPress.org-Verzeichnis, Bookly, und aktualisieren Sie über Plugins, dann Plugin installieren, dann Plugin hochladen.
- Prüfen Sie nach dem Update die neue Versionsnummer (27.8 oder neuer) mit den obigen Schritten und kontrollieren Sie, dass Buchungsformular und bestehende Termine normal funktionieren.
Wenn Sie kostenpflichtige Bookly-Erweiterungen nutzen, aktualisieren Sie diese zusammen mit dem Kern-Plugin; ihre Veröffentlichungen sind üblicherweise aufeinander abgestimmt.
Prüfen Sie bei der Gelegenheit, ob WordPress selbst und Ihre übrigen Plugins aktuell sind: Dasselbe Prinzip gilt für alle.
Nach dem Update
Ein Update auf 27.8 oder neuer schließt die Lücke, und es gibt keinen Hinweis darauf, dass sie irgendwo ausgenutzt wurde. Eine Notfallreaktion ist also nicht impliziert: Sie müssen Ihre Website weder als kompromittiert behandeln noch offline nehmen.
Ein Folgeschritt sollte allerdings wirklich erledigt und nicht abgeheftet werden, und er ergibt sich unmittelbar aus dem, was diese Lücke erreichen konnte. Da WordPress-Passwort-Hashes zu den Daten gehörten, die die Abfrage zurückgeben konnte, und da ein früher abgegriffener Hash einem Angreifer auch nach Ihrem Update nützt, ist die sinnvolle Vorsichtsmaßnahme, nach dem Update die Passwörter Ihrer Administratorkonten zurückzusetzen. Zwei kleinere Schritte passen dazu:
- Sehen Sie Ihre Administrator- und Redakteurskonten daraufhin durch, ob Ihnen eines davon unbekannt ist, so wie Sie Zugänge ohnehin gelegentlich prüfen würden.
- Erneuern Sie die Sicherheitsschlüssel und Salts von WordPress in der
wp-config.php(neue Werte gibt es mit einem Klick beim offiziellen Schlüsselgenerator; ein Austausch meldet alle Benutzer einmalig ab).
Behandeln Sie das als gewöhnliche Sicherheitspflege, nicht als Vorfallsbearbeitung.
Was ich getan und nicht getan habe
Um vollständig transparent zu machen, worauf meine E-Mail beruht: Ich habe nur öffentliche
Dateien gelesen, die Ihre Website ohnehin jedem Besucher ausliefert, konkret die öffentliche
readme.txt des Bookly-Plugins und Ihre Startseite. Ich habe nicht auf Ihren
WordPress-Adminbereich, Ihre Datenbank oder einen anderen privaten Teil der Website
zugegriffen.
Insbesondere habe ich nie etwas an Ihr Buchungsformular oder an den betroffenen Anfragepfad gesendet; es wurde nichts übermittelt, getestet oder ausgenutzt. Das wiegt hier schwerer als auf den meisten dieser Seiten: Die Lücke ist eine nicht authentifizierte Anfrage an genau diesen Pfad, also macht „ich habe ihn nicht angefasst” den ganzen Unterschied zwischen einer Offenlegung und einem Eindringen.
Dies ist eine versionsbasierte Beobachtung: Ihre Website meldet eine Version im betroffenen Bereich. Eine Website in diesem Bereich kann bereits anderweitig geschützt sein, etwa durch eine Web Application Firewall oder eine zurückportierte Korrektur. Dieser Hinweis behauptet nicht, dass Ihre Website zum Zeitpunkt meiner Prüfung ausnutzbar war.
Ich habe keinen Webmaster / ich komme nicht weiter
Wenn Sie die Website nicht selbst betreuen, leiten Sie diese Seite bitte an die zuständige Person weiter (Ihre Webentwicklung, Agentur oder Ihren Hoster). Dort wird man die obigen Schritte schnell wiedererkennen.
Wenn Sie die Website selbst betreuen und nicht weiterkommen, helfe ich Ihnen gern kostenlos weiter. Melden Sie sich einfach über die Kontaktdaten unten.
Kontakt
Evan Harris, Sicherheitsforscher
- E-Mail: security@mail.mcpsec.dev
- X: @Evan__Harris
- GitHub: eharris128
- LinkedIn: Evan Harris
Ich melde mich zu solchen Themen ausschließlich, um Betreibern zu helfen, ihre Websites abzusichern. Wenn Sie nicht erneut kontaktiert werden möchten, sagen Sie einfach Bescheid; ich halte mich daran.
Quellen
Offizielle Meldungen und Nachverfolgung
Hersteller / Plugin