Tento príbeh nadväzuje na naše nahlasovanie bezpečnostných zraniteľností z roku 2019, kde sa nám podarilo nájsť kritickú zraniteľnosť v slovenskom eID klientovi. Tentokrát sme sa znovu rozhodli pozrieť na bezpečnostnú hygienu štátneho SW súvisiaceho s vytváraním elektronického podpisu.
Odporúčanie pre slovenských občanov: Aplikáciu D.Launcher 2 aktualizujte minimálne na verziu 2.0.7.
Pre českých občanov: V aplikácii eObčanka-Identifikace na macOS prejdite na aktuálnu verziu 3.6.0, alebo ju, ak môžete, jednoducho odinštalujte. eObčanka-Identifikace na macOS umožňuje útočníkovi spustiť kód na vašom počítači po kliknutí na podstrčený odkaz a potvrdení otvorenia aplikácie.
Prečo sme sa rozhodli hľadať zraniteľnosti v štátnom SW?
Tieto ciele sú zaujímavé najmä z pohľadu toho, že štát nepriamo núti svojich občanov a zároveň zamestnancov štátu k ich používaniu, čo v preklade znamená relatívne veľkú penetráciu používateľov na lokálnych trhoch. Zo skúseností vieme, že lokálne inštalovaný softvér - teda aplikácie, ktoré si používateľ inštaluje na svoj počítač - nepodliehajú penetračným testom a auditom takmer vôbec, nakoľko sú spoločnosti zamerané najmä na testovanie webov a infraštruktúr. Je teda veľká šanca, že sa nám podarí niečo zaujímavé nájsť. Tento blog zároveň vznikol ako satira na nasledujúce vyjadrenia:
Ako náročné je nájsť zraniteľnosti?
Každý, kto aspoň trochu vie, ako funguje výskum zraniteľností vie, že vyjadrenia ako "hackli do X minút" sú len úsmevná neznalosť žurnalistov. Každopádne, chceli sme zistiť či aj my sa dokážeme dostať na titulky článkov a taktiež, či je to možné v stanovenom časovom limite. Dnes máme k dispozícii silné LLM, a tak sme mu dali jasnú úlohu:
**Prompt:**
> allright bro, hackers claim that they can hack state software in 2 minutes, now you have 2 minutes to find a remote code execution in eObcanka – Identifikace, hurry
up you have only 2 minutes
**Claude Code session:**
● I'll do a quick security review of the eObčanka app contents on your machine.
Let me explore the application structure.
Searched for 1 pattern, listed 1 directory
● CRITICAL FINDING: Remote Code Execution via Command Injection
in Custom URL Scheme Handler
Found it in the AppleScript launcher at:
/Applications/Identifikace_eOP.app/Contents/Resources/Scripts/main.scpt
**Prompt:**
> you did it in less than minute, congrats bro, kthx
**Claude Code:**
● Cheers! Yeah, the AppleScript launcher being a plaintext .scpt file made it
trivially auditable — and the bug was right there on line 3. No decompilation,
no reverse engineering needed.
V tomto článku ukazujeme, aké zraniteľnosti sme našli a ako v praxi (ne)fungovalo ich koordinované nahlasovanie. Je to blog z kategórie „Vyskúšali sme za vás“ – a exploitácia nebude sofistikovaná, skôr naopak. Ak Vás zaujíma technický dodatok, nájdete ho v samostatnom blogu, ktorý vyjde neskôr. Tento článok nie je primárne o tom, že v štátnom softvéri vznikajú chyby. Tie vznikajú všade. Je o tom, čo sa stane potom, a ako proces zlyháva.
Ako nahlasovanie zraniteľnosti na papieri funguje?
Koordinované zverejňovanie zraniteľností
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) na svojich stránkach píše: „Koordinované zveřejňování zranitelností – proces, který umožňuje bezpečně nahlásit objevenou zranitelnost, dát prostor pro její opravu a teprve poté ji zveřejnit." NÚKIB definoval v decembri 2025 svoju politiku nahlasovania, o ktorej sa dozviete aj z reklamných príspevkov na Facebooku či LinkedIne:
CVE identifikátor, CVSS skóre
Samotné CVE ešte nehovorí, aká je zraniteľnosť vážna; závažnosť sa typicky dopĺňa cez CVSS skóre (Common Vulnerability Scoring System, od 0.0 do 10.0, kde vyššie číslo znamená vážnejšiu zraniteľnosť) a ďalšie údaje napríklad v NVD (National Vulnerability Database). CVE prideľuje buď CVE Assignment Team, alebo autorizované organizácie označované ako CNA (CVE Numbering Authorities), typicky výrobcovia softvéru, koordinátori alebo bezpečnostné organizácie.
Nahlasovanie a lehoty
Upozornenia na zraniteľnosti v slovenskom SW
Keďže sme sa už slovenskému eID klientovi venovali v minulosti, na rad prišli podporné a súvisiace programy, ktoré sú však integrálnou časťou eID ekosystému. Konkrétne sme sa venovali aplikáciám D.Launcher2. Vyhlásenie k požadovaným aktualizáciám nájdete na:
Český prípad
Z aplikácie nie je jasné, že sa jedná o bezpečnostnú záplatu a dokonca ani nie je možná priama aktualizácia. Občania si musia ísť manuálne stiahnuť novú verziu z oficiálnej stránky.
- závažnosť / CVSS skóre
- CVE identifikátor
- zoznam dotknutých verzií
- popis workaroundu pre používateľov, ktorí nemôžu hneď aktualizovať
- primerane viditeľnú komunikáciu smerom k dotknutým používateľom.
Zraniteľnosti v slovenskom D.Launcher 2
| Dátum | Aktér | Udalosť |
|---|---|---|
| 24. 4. 2026 (D+0) | Binary House | Nahlásenie zraniteľností v D.Launcher 2 dodávateľovi Ditec + informovanie NBÚ |
| 29. 4. 2026 (D+5) | Binary House | Odoslanie aktualizácie NBÚ s informáciami od dodávateľa, ktorý sa k riešeniu postavil korektne |
| 30. 4. 2026 (D+6) | NBÚ | Automatizovaná odpoveď s potvrdením prijatia dodatočných informácií |
| 6. 5. 2026 (D+12) | Ditec | Vydanie opravy v D.Launcher 2 v2.0.7 |
| 7. 5. 2026 (D+13) | Ditec | Dodávateľ posiela NBÚ detailný report o vykonaných krokoch a riešení zraniteľností |
| 11. 5. 2026 (D+17) | NBÚ | Stručná odpoveď: potvrdenie prijatia informácií a poďakovanie za spoluprácu |
| 20.5.2026 | NBÚ | Bez samostatného verejného upozornenia NBÚ a bez aktívnej koordinácie dátumu zverejnenia (CVE bude priradené) |
| stav k publikácii | Ditec / NASES | Oprava vydaná, verejné upozornenie dostupné na slovensko.sk |
Zraniteľnosť v eObčanka - Identifikace
"Dobrý den,
Nie je jasné, čo tým dodávateľ myslel, avšak zjavne nepochopil podstatu nášho nahlásenia. Keďže teda nejde o zraniteľnosť, slušne sme sa opýtali:
Kontaktuji Vás v návaznosti na Vaše oznámení o nalezené bezpečnostní zranitelnosti v aplikaci eObčanka-Identifikace.
Zjistili jsme, že proces pro zpracování podobných oznámení nemáme optimálně nastaven a vyhodnocení Vašeho oznámení vývojovým týmem nebylo provedeno korektně.
Zranitelnost již řešíme, jako rychlý fix bude zavedeno ošetření parametrů skriptu, cílové řešení pak může být i jiné.
Mrzí mě, že na naší straně k takovéto situaci došlo.
Po dohodě s CISO jsme upravili interní proces tak, aby v rámci řešení těchto hlášení byl zapojen také tým specificky se zabývající bezpečností.
Chyba ve zpracování tohoto oznámení nám tak pomohla vylepšit interní procesy, za což Vám děkuji a věřím, že se nebude opakovat.
Jakmile budu mít k dispozici další informace, ozvu se Vám.
Časová os:
| Dátum | Aktér | Udalosť |
|---|---|---|
| 21. 4. 2026 (D+0) | Binary House | Nahlásenie NÚKIB (cvd@nukib.gov.cz) + dodávateľovi |
| ~23. 4. 2026 (D+2) | Binary House | Po 2 dňoch bez odpovede následný kontakt CSIRT.CZ — odpoveď „nespadá do našej pôsobnosti" |
| 28. 4. 2026 (D+7) | Dodávateľ | „Není to zranitelnost, je to vlastnost" |
| 29. 4. 2026 (D+8) | NÚKIB | Prvá odpoveď (po 8 dňoch): „omlouváme se za prodlení" |
| 5. 5. 2026 (D+14) | Dodávateľ | Priznáva chybu vo vyhodnotení, oprava sa rieši |
| 8. 5. 2026 (D+17) | Binary House | Follow-up a upozornenie na lehoty |
| 8. 5. 2026 (D+17) | NÚKIB | Upozornenie na možnú stratu ochrany nahlasovateľa bez jasne komunikovaného termínu |
| 8. 5. 2026 (D+17) | Binary House | Ďalší follow-up na NÚKIB s otázkami o lehotách |
| 13. 5. 2026 (D+22) | DIA + dodávateľ | Telefonát z DIA + vydanie opravy |
| 19.5.2026 | NÚKIB | Žiadosť o neskoré uverejnenie tohto blogu, zamietnuté |
| dodnes | NÚKIB | Bez CVE, bez verejného upozornenia, bez koordinácie |

