Files
breakpilot-compliance/zeroclaw/tests/reference-cases/euipo-registration-consent.md
T
Benjamin Admin 7ebd25c59c docs: Add EUIPO registration as compliance agent reference test case
Real-world case from EU authority (EUIPO) with 7 findings:
- Grammatically broken consent text (bad DE translation)
- Coupling prohibition violation (login = consent, Art. 7(4) DSGVO)
- No reject button, no granularity, no active opt-in
- Broken link layout (DSE/ToS links appear after submit button)
- Includes correction suggestion and planned agent check implementations
- Pattern: WSO2 Identity Server default templates (systemic issue)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-04 07:28:32 +02:00

5.2 KiB

Test Case: EUIPO Registration — Consent-Formulierung

Quelle: EU-Behoerde (Amt der Europaeischen Union fuer geistiges Eigentum) URL: https://login.euipo.europa.eu (Registrierungsseite) Entdeckt: 2026-05-04 Typ: Consent-Text-Fehler + Koppelungsverbot Schwere: HIGH


Befund

Auf der Registrierungsseite des EUIPO steht (vollstaendiger Text):

"Wenn Sie auf Anmelden klicken, stimmen Sie unseren zu Nutzungsbedingungen und Datenschutz-Bestimmungen gelesen und verstanden Registrieren Haben Sie bereits ein Konto? Anmelden Datenschutz-Bestimmungen gelesen und verstanden Nutzungsbedingungen Deutsch"

Der Text "Datenschutz-Bestimmungen gelesen und verstanden" und "Nutzungsbedingungen" erscheinen als separate Links unterhalb des Registrieren-Buttons — vermutlich soll der obere Satz darauf verweisen, aber die Verknuepfung ist kaputt (Links nach dem Button statt inline).

Fehler

# Typ Beschreibung Rechtsgrundlage
1 Sprachfehler Satz grammatisch unvollstaendig ("stimmen Sie unseren zu" ergibt keinen Sinn) Art. 12(1) DSGVO (klare und verstaendliche Sprache)
2 Zwangs-Consent Login = automatische Zustimmung, kein separater Opt-in Art. 7(4) DSGVO (Koppelungsverbot)
3 Keine Ablehnung Kein Button um NICHT zuzustimmen (nur Login oder Seite verlassen) Art. 7(3) DSGVO (Widerruf so einfach wie Erteilung)
4 Keine Granularitaet Nutzungsbedingungen und Datenschutz werden in einer Zustimmung zusammengefasst EDPB Guidelines 05/2020 Rn. 43 (Granularitaet)
5 Kein aktiver Consent Kein Checkbox oder aktive Handlung — blosse Nutzung gilt als Zustimmung EuGH C-673/17 Planet49 (aktive Einwilligung)
6 Kaputtes Link-Layout Links zu DSE und Nutzungsbedingungen erscheinen NACH dem Registrieren-Button statt inline im Consent-Text — der Satz oben verweist ins Leere Art. 12(1) DSGVO (leicht zugaenglich)
7 Uebersetzungsfehler Offensichtlich maschinell aus EN uebersetzt ("stimmen Sie unseren zu" ist kein korrektes Deutsch) — widerspricht Anforderung an Muttersprache des Nutzers Art. 12(1) DSGVO (klare und einfache Sprache)

Erwartete Agent-Erkennung

Der Compliance Agent sollte folgende Checks ausfuehren:

  • banner_text_violations: Grammatisch fehlerhafte Consent-Formulierung erkennen
  • Severity: HIGH
  • Finding: "Consent-Text ist grammatisch unvollstaendig und nicht verstaendlich (Art. 12(1) DSGVO)"

2. Koppelungs-Check (authenticated_scanner.py)

  • Login-Button darf nicht gleichzeitig Consent erteilen
  • Finding: "Einwilligung wird an Registrierung/Login gekoppelt (Art. 7(4) DSGVO)"
  • reject_button_check: Kein gleichwertiger Ablehn-Button vorhanden
  • Finding: "Keine Moeglichkeit die Einwilligung abzulehnen"

4. Granularitaets-Check (NEU — zu implementieren)

  • Nutzungsbedingungen ≠ Datenschutz-Einwilligung
  • Muessen separat zustimmbar sein
  • Finding: "Nutzungsbedingungen und Datenschutz in einer Zustimmung zusammengefasst"

Korrekturvorschlag

Korrekte Formulierung

☐ Ich habe die Nutzungsbedingungen gelesen und stimme ihnen zu. (Pflichtfeld)

☐ Ich habe die Datenschutzerklaerung gelesen und erklaere mich mit der
  Verarbeitung meiner personenbezogenen Daten gemaess Art. 6(1)(a) DSGVO
  einverstanden. (Freiwillig — Registrierung auch ohne moeglich)

[Registrieren]   [Abbrechen]

Warum korrekt:

  • Zwei separate Checkboxen (Granularitaet)
  • Aktive Handlung noetig (Checkbox ankreuzen, nicht nur Button klicken)
  • Datenschutz-Consent ist freiwillig (Koppelungsverbot)
  • Klare Sprache, vollstaendige Saetze
  • Abbrechen-Button als Alternativhandlung

Technische Implementierung als Agent-Check

# In consent_scanner.py oder neuer Check
CONSENT_TEXT_PATTERNS = [
    # Zwangs-Consent bei Login/Registrierung
    r"(?:klicken|anmelden|registrieren).*stimmen\s+(?:Sie|sie|du).*zu",
    r"(?:login|sign.?up|register).*(?:agree|accept|consent)",
    # Grammatisch unvollstaendige Saetze
    r"stimmen\s+(?:Sie|sie|du)\s+unseren?\s+zu",
    # Fehlende Granularitaet
    r"(?:nutzungsbedingungen|terms).*(?:und|and).*(?:datenschutz|privacy).*(?:zu|agree|accept)",
]

MISSING_ELEMENTS = [
    "checkbox",           # Aktive Zustimmung (nicht nur Button)
    "button.*ablehnen",   # Ablehn-Option
    "button.*cancel",     # Abbrechen-Option
]

Neuer Check: coupling_prohibition

Prueft ob Einwilligung an Registrierung/Login/Kauf gekoppelt ist:

  • Login-Button text enthalt "zustimmen/agree/accept" → Koppelungsverbot
  • Kein separater Consent-Checkbox vor Login-Button → Koppelungsverbot
  • Einwilligung als Pflichtfeld bei Registrierung → Koppelungsverbot (wenn Service auch ohne nutzbar)

Relevanz

Dieser Case ist besonders relevant weil:

  1. EU-Behoerde — wenn selbst das EUIPO es falsch macht, wie sollen KMUs es richtig machen?
  2. OIDC-Registrierung — sehr haeufiges Pattern bei SaaS-Produkten
  3. Mehrsprachig — der deutsche Text ist offensichtlich schlecht uebersetzt
  4. Systemisch — WSO2 Identity Server Templates enthalten dieses Pattern standardmaessig