numa numa nay

numa ist ein Hotel ohne Rezeption. Man muss online einchecken. Durch das Hochzählen einer Rechnungsnummer konnte auf mehr als 500.000 Rechnungen sowie auf Ausweisdaten anderer Gäste zugegriffen werden.

Hintergrund

Wenn man bei numa einchecken möchte, muss man das online erledigen. Es gibt keine Rezeption. Einer von vier Schritten dabei ist eine digitale Identitätsprüfung: Entweder lädt man den Scan eines amtlichen Identitätsnachweisen hoch oder führt ein Video-Interview durch, in dem auch der Ausweis in die Kamera gehalten werden soll.

Ich wollte aus guten Gründen kein Foto meines Ausweises online teilen. Und seit einer Gesetzesänderung ist man als Person mit deutscher Staatsangehörigkeit auch nicht mehr verpflichtet, einen Meldeschein abzugeben.

Ohne die Übermittlung meines Ausweisfotos wollte numa mich aber nicht einlassen und einen Termin für einen Video-Call gab es auch nicht mehr. Immerhin bot numa mir an der Hotline und per E-Mail eine kostenlose Stornierung an:

Of course, if you prefer not to follow this process, we completely understand. In that case, we’re happy to offer a free cancellation of the booking. Just let us know how You’d like to proceed.

Wir einigten uns auf ein kostenloses Stornieren über booking.com, und das hätte das Ende der Geschichte sein können. Doch numa lehnte die Stornierungsanfrage ab ‒ und so geht die Geschichte weiter.

Die Geschichte geht weiter

Ich brauchte ein Zimmer für die Nacht, es war bereits bezahlt und es sah nicht so aus, als würde man mir das Geld zurückerstatten. Also entschied ich mich schlecht gelaunt, es zu versuchen. Zunächst scheiterte ich mehrfach am Check-in-Portal.

Aber schließlich akzeptierten sie das Dokument, das ich bereitgestellt hatte, und ließen mich ein.

Es kam, wie es kommen musste

Am nächsten Morgen konnte ich meine Rechnung herunterladen. Dabei fiel mir diese URL auf: https://trip.numastays.com/api/invoice/download?tripId=abcdf&invoiceId=100499999. Natürlich habe ich die invoiceId verändert und bekam prompt die Rechnung einer anderen Person samt ihrer Adresse und Informationen über ihren Aufenthalt.

Zum Glück enthalten die Rechnungen keine Ausweisdaten, aber sie enthalten die Buchungsnummer.

Allein mit dieser Buchungsnummer kann man unter https://checkin.numastays.com/ virtuell einchecken. Dann schaute ich mir die Seite zum Herunterladen der Rechnung an: https://trip.numastays.com/de/trips/<booking ID>/invoice. Im Quellcode dieser Seite, voilà: die „super sicheren“ Ausweisdaten einer fremden Person.

"primaryGuest": {
        "id": "REDACTED",
        "firstName": "REDACTED",
        "lastName": "REDACTED"
    },
    "travelPurpose": "leisure",
    "bookingDate": "2025-05-31T12:23:38Z",
    "arrival": "2025-06-02T13:00:00Z",
    "departure": "2025-06-04T09:00:00Z",
    "status": "CheckedOut",
    "checkIn": {
        "status": "complete",
        "date": "2025-06-02T13:00:00Z",
        "requestedTime": "15:00",
        "approvedTime": "13:00"
    },
    "checkOut": {
        "date": "2025-06-04T09:00:00Z",
        "requestedTime": "11:00",
        "approvedTime": "11:00"
    },
    "booker": {
        "firstName": "REDACTED",
        "lastName": "REDACTED",
        "email": "REDACTED@bst.buņd.de"
    },
    "guests": [
        {
            "id": "REDACTED",
            "firstName": "REDACTED",
            "lastName": "REDACTED",
            "nationalityCode": "DE",
            "gender": "Female",
            "documentType": "PassportNumber",
            "documentNumber": "REDACTED",
            "documentIssueDate": "2022-09-09",
            "birthDate": "REDACTED",
            "address": {
                "city": "REDACTED",
                "postalCode": "REDACTED",
                "countryCode": "REDACTED",
                "addressLine1": "REDACTED"
            },
            "email": "REDACTED",
            "phone": "REDACTED",
            "isMainGuest": true
        }
    ],

Die invoiceIDs scheinen fortlaufend vergeben zuwerden, von 100000001 bis mindestens 100545503. Eine zufällige Auswahl von zehn IDs ließ sich problemlos herunterladen. Daher muss man davon ausgehen, dass ich mehr als eine halbe Million Rechnungen und Ausweisdaten der jeweiligen Gäste hätte herunterladen können.

Was lernen wir daraus? Lade deinen Ausweis nirgendwo hoch. Und die Meldepflicht sollte ganz abgeschafft werden, nicht nur für Deutsche.

Disclosure Timeline

  • 02.02.2024: Stellungnahme von Elina, Constanze und mir für den CCC an das BMJ zur Abschaffung der Hotelmeldepflicht für Deutsche
  • 03.06.2025: Buchung und Übernachtung
  • 05.06.2025: Meldung an numa und Berliner Datenschutzbeauftragte
  • 06.06.2025:
    • numa teilt mit, dass die Lücke geschlossen wurde. Ausweisdaten werden weiterhin gespeichert
    • numa informiert mich als Betroffenen über das Datenleck
    • numa bietet an, die Kosten für das Zimmer trotz meiner Übernachtung zu erstatten
  • 11.06.2025: Disclosure