Hlavní obsah

Nahlásili jste Plzni závadu? Váš e‑mail si mohl stáhnout kdokoliv

Foto: anonymizováno, AI

Otevřené API 3.0 vracelo e‑maily nahlašovatelů komukoli, bez přihlášení. Ilustrace; zobrazené adresy jsou smyšlené a maskované.

Plznito.cz je největší západočeský nástroj pro hlášení závad ve městě — rozbitá lampa, výmol, přetékající kontejner. Jenže jeho otevřené rozhraní vydávalo spolu s podnětem i e‑mailovou adresu člověka, který ho poslal. Komukoli. Bez hesla.

Článek

Tisíce e-mailů na zlatém podnose.

Napíšete městu, že u vás přetéká kontejner nebo nesvítí lampa. Vteřina dobré vůle. Co ale netušíte: spolu s tímto podnětem jste komukoli na internetu naservírovali i svou e‑mailovou adresu.

Váš podnět se objeví na veřejné mapě jako plznito.cz/mapa/1234 — a na tom nic není, mapa i text podnětu jsou veřejné zcela záměrně. Problém je o patro níž.

Aby mapa věděla, co má zobrazit, ptá se aplikačního rozhraní — otevřeného serveru API 3.0 na adrese plznito.cz/api/3.0/. A to v odpovědi vysypalo nejen text podnětu, ale i e‑mailovou adresu jeho zadavatele, komukoli a bez jediného přihlášení. Dokumentace rozhraní sice veřejná není, samo API ale odpovídá rozpoznatelnému standardu, takže jeho logika je pro znalé čitelná jako otevřená kniha.

A teď to horší. Identifikátory podnětů tvoří souvislou číselnou řadu — 10001, 10002, 10003… — a rozhraní neomezovalo počet dotazů. Osobní údaje tak nešlo získat jen u jednoho podnětu, ale bylo možné je stáhnout po řadě, všechny, napříč celou mnohaletou databází.

Foto: anonymizováno

Službu pro město spravuje Správa informačních technologií města Plzně (SITMP). Aplikace nedávno prošla redesignem a podle Registru smluv zadala SITMP zakázku „Redesign mobilní aplikace PlzniTo pro Android a iOS“ plzeňské firmě Beneš & Michl za 231 352 Kč s DPH (smlouva z 19. března 2026). Kdy přesně vzniklo samotné API 3.0, z něhož údaje unikaly, ale veřejně známé není — a protože smlouva se týká mobilní aplikace, ne backendu, nelze z ní dovozovat, kdo a kdy rozhraní postavil. Jisté je zatím jen to, co rozhraní vracelo, a že šlo o citlivá data.

Čeho se únik netýkal

Pro pořádek, protože na tom záleží: nejde o veřejná otevřená data, která Plzeň o podnětech sama zveřejňuje. Ta jsou zbavená osobních údajů a žádné e‑maily neobsahují — ostatně i čísla v tomto článku pocházejí právě z nich. Unikaly údaje navíc, které vydával samostatný otevřený server API 3.0 nad rámec toho, co má být veřejné.

Únik byl omezený na aplikační rozhraní samotné aplikace PlzniTo na doméně plznito.cz. Otevřený datový portál města opendata.plzen.eu, který provozuje rovněž SITMP, běží odděleně a žádné osobní údaje neobsahuje.

A ještě jedno upřesnění: nešlo o napadení systému útočníkem. Zranitelnost jsem objevil, ověřil výhradně na vlastním testovacím záznamu — se skutečnými e‑maily jiných lidí jsem nepracoval — a neprodleně ji nahlásil provozovateli, který zareagoval rychle a profesionálně.

Jak to proběhlo

Na chybu jsem narazil 12. listopadu 2026. Hned druhý den, 13. listopadu v 10:30, jsem o úniku písemně informoval provozovatele, respektive jeho pověřence pro ochranu osobních údajů, a vyzval ho k nápravě. Postupuji podle principů odpovědného zveřejnění: tento text vychází až poté, co byla díra odstraněna, abych mezitím riziko zneužití nezvyšoval.

A je férové to přiznat: SITMP zareagovala mimořádně rychle. Ve 13:00 téhož dne odpověděla a citlivé údaje z API odstranila — dvě a půl hodiny po oznámení. Zároveň oznámila kompletní audit předávaných informací. Ověřil jsem, že detail podnětu, jeho seznam i historie už e‑mailovou adresu nevracejí — nahlášená zranitelnost je zavřená. To nic nemění na tom, že tam díra byla; ale rychlost a věcnost nápravy je přesně to, co od správce veřejné služby čekáme.

Foto: anonymizováno

Oficiální vyjádření SITMP

K článku zaslal Luděk Šantora, ředitel SITMP, následující vyjádření:

Zranitelnost vznikla při nasazení nové verze webové aplikace PlzniTo dne 12. 11. 2026. Předchozí verze touto chybou netrpěla. Šlo o chybu na naší straně. Po nahlášení 13. 11. 2026 jsme ji do tří hodin odstranili a provedli bezpečnostní sken celé aplikace. Zranitelnost umožňovala získat pouze e-mailové adresy oznamovatelů. Žádné další osobní údaje uživatelů ani obsah jejich hlášení a komunikace přístupné nebyly. Riziko pro dotčené osoby považujeme za nízké. Incident přesto v zákonné lhůtě preventivně ohlásíme Úřadu pro ochranu osobních údajů. Dotčeným uživatelům se omlouváme a Vám děkujeme za odpovědné nahlášení.
Luděk Šantora, ředitel SITMP

Co na to GDPR

Vystavení e‑mailových adres bez souhlasu je porušením zabezpečení osobních údajů. Správce má podle článku 33 GDPR povinnost ohlásit takové porušení Úřadu pro ochranu osobních údajů do 72 hodin a za určitých okolností informovat i samotné dotčené uživatele (článek 34). U městského nástroje, kterému lidé svěřují adresu v dobré víře, že pomáhají svému okolí, je důvěra o to cennější.

SITMP ve svém vyjádření avizuje preventivní ohlášení incidentu Úřadu pro ochranu osobních údajů v zákonné lhůtě. Vyjádření zatím nepotvrzuje, že ohlášení již proběhlo.

Když už jsme u těch dat: jak plznito vlastně funguje

Veřejná data o podnětech sahají do roku 2017 a je jich hodně — skoro 48 000 záznamů za devět let. To je dost na to, aby odpověděla na otázku, kterou si Plzeňané kladou nahlas: dělá ten web vůbec něco?

Foto: anonymizováno

Odpověď zní, možná překvapivě: ano, dělá. Skoro devět z deseti podnětů putuje dál na příslušný útvar — Správu veřejného statku, obvodní úřady, Čistou Plzeň, městskou policii. Vyřízení je rychlé, medián jsou čtyři dny. Odmítnutých podnětů je za celou historii jen 1,7 %, a i ty bývají věci fakticky mimo gesci města. Největší porcí jsou mimochodem odpadky a černé skládky — skoro třetina všeho (14 041 podnětů), a právě u nich je míra odmítnutí nejnižší.

I tam, kde odpověď zmíní soukromý pozemek, se obvykle koná dál. Typická formulace nezní „na to kašleme“, ale „majitel pozemku byl vyzván k úklidu“ s následnou kontrolou. Odkaz na policii u špatného parkování není odbytí — je to předání městské policii jako příslušnému orgánu, která pak místo prověří. Představu, že plznito podněty samolibě smete ze stolu, data prostě nepotvrzují.

Jenže věci se nedotahují do konce — a plznito to ani neumí

A přesto je tu háček, a je zásadní. Plznito je prostředník. Umí podnět přijmout, předat a odpovědět na něj — ale nemá žádnou moc přinutit toho, kdo má závadu skutečně odstranit. A na datech je vidět, že odpovídání čím dál víc nahrazuje řešení. Zatímco v roce 2019 bylo 62 % podnětů označeno za vyřešené, v roce 2025 to bylo jen 28 % — zbytek skončil ve stavu zodpovězené. Úřad tedy reaguje, ale samotná závada tím nemusí být ze světa odstraněná.

Foto: anonymizováno

Odpovědí přibývá, řešení ubývá

Od roku 2022 se nůžky rozevírají: podnětů, které úřad jen „zodpoví“, přibývá, zatímco těch „vyřešených“ ubývá.

Důsledek je dobře měřitelný. Na 1 317 místech v Plzni vznikly tři a více podnětů ve stejném bodě a stejné kategorii — dohromady jde o 5 548 hlášení, tedy 11,7 % všech nahlášených závad. Některá místa se vracejí rok co rok: nepořádek kolem jedněch popelnic byl nahlášen 27×, rozbité víko kontejneru 25×, vyhozený gauč na jednom rohu 22×. V 1 028 podnětech lidé přímo píší, že hlásí opakovaně — a tituly mluví za vše: „Stále chybějící strom — hlášeno už počtvrt“, „Zastávky Slovanské Údolí podruhé!“.

Foto: anonymizováno

Od roku 2022 se nůžky rozevírají: podnětů, které úřad jen „zodpoví“, přibývá, zatímco těch „vyřešených“ ubývá.

Proč se to děje? Protože uzavřený podnět z aktivní mapy zmizí — a uzavřených je 99,4 %. Jakmile úřad podnět „zodpoví“, zmizí z mapy, i když je závada pořád na místě. Když se problém vrátí, občan nemá kam navázat a hlásí ho znovu jako úplně nový. Systém tak vypadá svěže a vyřízeně, zatímco realita na chodníku se opakuje dokola. Není to zlá vůle administrátorů — je to konstrukční limit nástroje, který měří svůj úspěch počtem odpovědí, ne stavem města.

Co by mělo Plznito udělat?

U úniku je náprava jednoduchá a nutná: přestat vracet osobní údaje ve veřejných odpovědích API, zavést autorizaci a prověřit, zda už někdo data nestáhl. To je věc dní.

Ta druhá věc je těžší a je spíš otázkou pro vedení města než pro programátory: rozlišovat mezi „zodpovězeno“ a „vyřešeno“, umožnit navázat na dřívější hlášení téhož místa a nebrat zmizení podnětu z mapy jako důkaz, že je hotovo. Plznito je nástroj placený z veřejných peněz. Neměl by jen rychle odpovídat — měl by pomáhat město skutečně spravovat.

Zdroje a metodika

  1. Otevřená data města Plzně — podněty PlzniTo. onlinedata.plzen.eu/data-plznito.php. Datový základ všech statistik v článku (47 237 podnětů za roky 2017–2026). Tato data jsou zbavená osobních údajů a žádné e‑maily neobsahují.
  2. Otevřený datový portál města Plzně a jeho provozovatel. opendata.plzen.eu; provoz potvrzuje Správa informačních technologií města Plzně na sitmp.cz. Portál běží odděleně od aplikačního rozhraní PlzniTo.
  3. Registr smluv / Hlídač státu — smlouva „Redesign mobilní aplikace PlzniTo pro Android a iOS“. Objednatel Správa informačních technologií města Plzně, dodavatel Beneš & Michl s.r.o., cena 231 352 Kč s DPH (191 200 Kč bez DPH), uzavřeno 19. 3. 2026, č. smlouvy 2026/SITMP/0095. hlidacstatu.cz/Detail/37257725.
  4. Obecné nařízení o ochraně osobních údajů (GDPR), Nařízení (EU) 2016/679, čl. 33 a 34 — ohlašování porušení zabezpečení osobních údajů dozorovému úřadu a vyrozumění dotčených osob. eur-lex.europa.eu.
  5. Úřad pro ochranu osobních údajů (ÚOOÚ) — dozorový úřad a ohlašovací povinnost. uoou.gov.cz.
  6. Vlastní zjištění autora. Zranitelnost rozhraní plznito.cz/api/3.0/ ověřena a nahlášena provozovateli 13. 11. 2026. Žádná osobní data skutečných uživatelů nebyla stažena ani zveřejněna.

Metodika. Statistiky vycházejí z rozboru výše uvedených otevřených dat. Výsledný stav podnětu je brán z pole status_name, předání úřadu z pole passed_on, doba vyřízení z rozdílu created a closed. Opakované lokality jsou určeny shodou zeměpisné polohy (zaokrouhlení na ≈ 5 m) a kategorie, se třemi a více podněty v jednom bodě; podíly z textu odpovědí (např. „soukromý pozemek“) vycházejí z vyhledávání klíčových frází v poli solution a jsou orientační.

Datové údaje vycházejí z veřejných otevřených dat města Plzně (onlinedata.plzen.eu), z podnětů za roky 2017–2026. Zranitelnost byla nahlášena provozovateli a článek vychází až po jejím odstranění. Text neobsahuje postup umožňující zneužití ani osobní údaje konkrétních osob.

Máte na tohle téma jiný názor? Napište o něm vlastní článek.

Texty jsou tvořeny uživateli a nepodléhají procesu korektury. Pokud najdete chybu nebo nepřesnost, prosíme, pošlete nám ji na medium.chyby@firma.seznam.cz.

Sdílejte s lidmi své příběhy

Stačí mít účet na Seznamu a můžete začít publikovat svůj obsah. To nejlepší se může zobrazit i na hlavní stránce Seznam.cz

Doporučované

Načítám