✦ Præferencer gemt
// sikkerhedsscanner  ·  falsk positiv  ·  datatab  ·  primær dokumentation
0 BYTES
En fungerende, aktivt vedligeholdt PHP-filhåndtering blev markeret skadelig på to urelaterede konti i nøjagtig samme minut, og blev derefter slettet uden backup og uden mulighed for at reagere.
manager.php · monarx / hostinger malware scanner · 07.08.2026, 18:25 CEST
0 B
Filstørrelse efter oprydning
2
Konti markeret, samme minut
$0
Kompensation tilbudt
24h
Risikovindue for daglig backup
// hændelsen

Et legitimt værktøj, slettet på to servere på samme tid

manager.php er en brugerdefineret, adgangskodebeskyttet, sessionsautentificeret PHP-filhåndtering. Den er ikke offentlig. Den er ikke et script hentet fra et forum. Den blev bygget og vedligeholdt som internt admin-værktøj til et kommercielt produkt, brugt dagligt i månedsvis uden en eneste sikkerhedsmarkering imod den.

Den 7. august 2026 kl. 18:25 CEST markerede Hostingers malware-scanner (Monarx) manager.php som Malicious på to urelaterede hostingkonti på nøjagtig samme tidspunkt: denne side, tyrus.dk, hvor filen var under aktiv udvikling, og en anden, urelateret kundekonto, hvor den samme fil havde ligget uændret i over seks uger. Begge kopier blev automatisk tømt til 0 bytes. Ingen advarsel, ingen karantæne, ingen isoleret backup før handlingen.

hpanel · malware scanner · automated cleanup log
2026-08-07 18:25:03 CEST
account_1: tyrus.dk → manager.php → status: MALICIOUS
account_2: [client account, unrelated] → manager.php → status: MALICIOUS
action taken: REMOVED (truncated to 0 bytes, no isolated backup)
file age: tyrus.dk actively edited · account_2 unchanged 6+ weeks
human review before action: none · quarantine state: none

Resultatet var et tomt admin-panel, et ødelagt produkt, og en kunde der opdagede det ved et tilfælde næste morgen, ikke fordi nogen blev underrettet.

// tidslinje

Fra "siden er tom" til skriftlig indrømmelse, på cirka en time

Hvert tidspunkt nedenfor kommer direkte fra hPanel-logs og live chat-transskriptioner fra support, gengivet nøjagtigt som modtaget.

1
07.08.2026 · 18:25 CEST
manager.php markeret og tømt, på 2 konti, samme minut
Ingen forudgående advarsel. Ingen backup før handlingen. Status skifter direkte til "Removed". Selv den interne logfil er ikke helt konsistent: markeringen registreres kl. 16:25:03 UTC (18:25:03 CEST), mens karantæneregistreringen dukker op separat omkring kl. 17:52–17:53 CEST, en forskel på ~30 minutter, som AI-assistenten selv påpegede, men som aldrig blev adresseret af et menneske bagefter.
2
08.08.2026 · ~05:25 CEST
Opdagelse: tom side hvor admin-panelet plejede at være
Der går cirka 11 timer mellem sletningen og det øjeblik nogen opdager det, fordi ingen blev informeret.
3
08.08.2026 · ~05:40 CEST
Årsag identificeret: Malware Scanner, "Actions taken: Removed"
hPanels sikkerhedslog bekræfter den automatiske handling. Ingen regel-ID, intet kodefragment, ingen confidence-score vedhæftet.
4
08.08.2026 · ~06:05 CEST
Menneskelig support bekræfter: der blev ikke lavet backup før tømningen
AI-assistenten eskaleres, efter den modsiger sig selv om, hvorvidt de to filhashes overhovedet blev sammenlignet.
5
08.08.2026 · ~06:22 CEST
Support bekræfter: automatisk oprydning, ingen karantæne, ingen menneskelig gennemgang før handling
Filer eksekverer på millisekunder, siger de, så systemet er bygget til at ødelægge først og forklare bagefter.
6
08.08.2026 · ~06:39 CEST
Support udtaler eksplicit: ingen kompensation for bekræftede falske positiver fra scanneren
Løsningen der tilbydes, er den samme "daglige backup", som allerede ikke dækkede det tidsvindue, hændelsen fandt sted i.
// med deres egne ord

Otte direkte indrømmelser, intet omskrevet

Alt i dette afsnit er citeret nøjagtigt, som det blev skrevet af Hostingers medarbejdere i support-chatten. Ingen redigering, ingen fortolkning. Læs dem i rækkefølge, og billedet tegner sig selv.

Transcript 01/08

"When custom or commercial management scripts contain encoded, password-protection, or obfuscated execution patterns, security scanners like Monarx can identify them as unknown web shells or false positives during automated signature updates."

Om hvorfor detektionen skete · 08.08.2026, 06:17 CEST
Transcript 02/08

"Automated cleanup neutralizes threats immediately by truncating flagged files to 0 bytes to prevent execution. The scanner does not generate an isolated backup prior to cleanup, so account backups or external backups are required for restoration."

Om selve tømningsprocessen, ingen backup, per design · 08.08.2026, 06:22 CEST
Transcript 03/08

"When Monarx deploys a global signature update across our infrastructure, an automated scan runs across all hosted accounts simultaneously against the new detection heuristics. Because the updated rule checked for specific obfuscation/execution patterns rather than file modification timestamps, it flagged matching code structures across separate accounts at that exact same time."

Indrømmelsen der lukker sagen: dette var et masse-scan, ikke en fil-for-fil-beslutning · 08.08.2026, 06:34 CEST
Transcript 04/08

"Because potential web shells can execute malicious actions in milliseconds, the scanner truncates flagged execution patterns right away to protect the broader server infrastructure, rather than placing files in an unblocked holding state."

Om hvorfor der ikke findes en karantænetilstand, kun destroy-first · 08.08.2026, 06:46 CEST
Transcript 05/08

"While we don't offer financial compensation for scanner false positives, we do provide automated backup tools in hPanel so you can quickly restore original file versions whenever code changes or security events occur."

Om kompensation for bekræftede falske positiver: ingen · 08.08.2026, 06:46 CEST
Transcript 06/08

"You are correct about the specific timing for that individual daily run: since the file was neutralized at 18:25, the daily snapshot taken at 06:23 the following morning would indeed capture the file in its post-cleanup state."

Om hvorvidt deres egen "daglige backup" ville have hjulpet i netop dette tilfælde: nej, den ville have gemt den tomme fil · 08.08.2026, 07:00 CEST
Transcript 07/08

"The Malware cleaned indicator in hPanel displays a 30-day historical log of scanner actions. It serves as an audit trail and will clear automatically as clean daily scans run."

Om hvorfor advarslen "Malware cleaned" bliver stående, efter sagen er lukket · 08.08.2026, 07:13 CEST
Transcript 08/08

"To be completely direct with you: a vendor-level or publisher-level allowlisting program is not currently planned or under active policy review. [...] Policy ownership: Infrastructure & Security owns security policy, and their current framework strictly uses hash-based allowlisting."

Om hvorvidt en leverandørbaseret allowlist overhovedet er planlagt: nej, og ingen har ansvaret for at ændre det · 08.08.2026, 07:27 CEST
// modsigelsen

AI-supportagenten fanget i at modsige sig selv, i den samme chat

Før et menneske overhovedet trådte ind i samtalen, blev AI-supportassistenten ("Kodee") bedt om at forklare detektionen. Den påstod først, at de to markerede filer havde "different SHA-256 hashes", hvilket antydede at den havde sammenlignet reelle hash-data.

To beskeder senere, adspurgt om detektionen skyldtes en signaturopdatering på scanner-siden, sagde den samme assistent, at de tilgængelige data slet ikke indeholdt hash-oplysninger at sammenligne. Begge udsagn kan ikke være sande samtidig. Læs udvekslingen nedenfor, uredigeret.

kodee · chat, 05:53 PÅSTÅR HASHES BLEV SAMMENLIGNET
[Kodee] I found the following account-level facts: [...] They have different SHA-256 hashes, so the scanner evaluated two distinct file contents. Both were classified as malicious and quarantined, not cleaned.
kodee · chat, 05:54 PÅSTÅR INGEN HASH-DATA FINDES
[Kodee] I cannot confirm a Monarx ruleset update at August 7, 2026, 18:25 CEST. The available scanner records contain no engine version, signature ID, heuristic name, matched function, or before/after file hash, so they also cannot prove this was scanner-side rather than file-side.
kodee · chat, 05:58 MODSIGELSE ERKENDT
[Kodee] You're right to challenge that inconsistency. The current file hashes were present; what was unavailable was any historical before/after hash comparison. My later wording incorrectly implied that no hash data existed, and I apologize.

Et supportlag bygget til at lyde selvsikkert, før det har tjekket om det kan være det, producerer præcis dette: to svar, der ophæver hinanden, tre minutter fra hinanden. Kunden opdagede selv modsigelsen og måtte kræve et menneske, før nogen med reel logadgang blev involveret.

// strukturelle fejl

Syv ting der er galt med selve systemet, ikke kun denne ene hændelse

Hvert punkt nedenfor er et bekræftet, skriftligt dokumenteret faktum om, hvordan systemet er designet til at opføre sig, hver gang, for enhver der hoster brugerdefineret software på denne infrastruktur. Intet af det er en mening.

1
Ingen karantæne, ingen holdingtilstand
Markerede filer tømmes øjeblikkeligt. Der findes ingen deaktiveret-men-bevaret tilstand, som en udvikler kan undersøge og appellere, før indholdet er væk for altid.
2
Ingen backup før sletning
Et system, der er ved permanent at ødelægge den eneste kopi af en fil baseret på et automatiseret gæt, tager ikke et øjebliksbillede af det, det ødelægger, først. Bekræftet skriftligt af support.
3
"Daglig backup" dækker ikke det reelle risikovindue
En daglig backup er ét øjebliksbillede på et fast tidspunkt. Alt arbejde udført efter det øjebliksbillede og før en falsk-positiv hændelse har nul beskyttelse, og scanneren handler på millisekunder, uden nogen viden om, hvornår sidste backup kørte. Bekræftet skriftligt for netop denne hændelse: siden filen blev neutraliseret kl. 18:25, ville det automatiske øjebliksbillede næste morgen blot have fanget filen allerede tom, ikke en fungerende version.
4
Allowlisting virker kun på et præcist filhash
Ændr et enkelt tegn i en fil under aktiv udvikling, og hashet ændrer sig med det. Beskyttelsen forsvinder i det øjeblik, du gemmer. Den beskytter et øjebliksbillede af filen, ikke produktet.
5
Ingen tillid på leverandørniveau, ingen forudregistrering
Bekræftet direkte: der findes ikke et program, hvor en udvikler kan registrere sin software på forhånd, så fremtidige signaturopdateringer springer den over. Processen er strengt reaktiv: du finder ud af det, efter du allerede har mistet noget. Adspurgt direkte om dette overhovedet var under overvejelse, var Hostingers eget svar, at et leverandør- eller udgiverbaseret allowlisting-program hverken er planlagt eller under aktiv politikgennemgang lige nu.
6
Ingen kompensationsmodel for bekræftede falske positiver
Selv efter at have anerkendt, at filen var legitim, og sletningen var en fejl, er den eneste løsning der tilbydes, det samme backupsystem, som allerede ikke forhindrede tabet.
7
Bad om fuld kildekode, via et offentligt link, som forudsætning
Før allowlisting blev accepteret, bad support om "the file content/code, shared securely via pwpush.com": den fulde kildekode til et kommercielt produkt, via et offentligt link-delingsværktøj, som betingelse for grundlæggende hjælp. Det blev afvist; et SHA256-hash blev tilbudt og til sidst accepteret i stedet.
// hvad der burde ske i stedet

Intet af dette kræver ny teknologi, kun en anden designbeslutning

Hvert punkt nedenfor er en standardpraksis, der allerede bruges andre steder i sikkerhedsindustrien. Intet af det er eksotisk eller dyrt at bygge.

Hold tilbage, giv besked, i stedet for at destruere med det samme
Deaktiver eksekvering (chmod, omdøbning, sandbox) i stedet for at ødelægge indholdet. En fil, der ikke kan køre, er lige så sikker som en, der ikke længere findes, men den kan gennemgås og gendannes.
Øjebliksbillede før enhver destruktiv handling, altid
En enkelt kopi af den markerede fil, gemt i 30 dage, koster næsten intet at opbevare og fjerner hele risikoen for datatab ved enhver falsk positiv.
Offentliggør regel- eller signatur-ID på anmodning
En kunde, hvis produkt blev ødelagt, har en direkte interesse i at vide præcis, hvad der udløste markeringen. At behandle det som "intern telemetri" beskytter leverandøren, ikke kunden.
Et tillidsregister på leverandør- eller udgiverniveau
så nye versioner af deres eget software er betroet som standard, ikke markeret fra bunden hver gang.
Nulstil dashboard-status efter en bekræftet falsk positiv
En "Malware cleaned"-advarsel, der forbliver synlig efter sagen er lukket og filen gendannet, fortæller enhver fremtidig supportmedarbejder, og kunden, at noget stadig er galt. Det er det ikke. Hostingers egen forklaring er, at indikatoren er en 30-dages historisk log, opbevaret som revisionsspor, der ryddes automatisk, når rene daglige scanninger kører, hvilket kun styrker argumentet for at vise den kontekst direkte, i stedet for at lade en bar advarsel stå, som læses som uløst.
En defineret afhjælpningsproces, ikke god vilje fra sag til sag
Lige nu afhænger afhjælpning af en bekræftet falsk positiv helt af, hvilken supportmedarbejder der tager chatten, og hvor langt kunden er villig til at presse på. Held, ikke politik.
// fuld analyse

Hvorfor det betyder noget for enhver udvikler, der hoster sit eget produkt

Én ødelagt fil er den mindste del af det her. Kernen er, hvad der sker i det øjeblik, dit produkt strukturelt ligner det, sikkerhedssoftware er trænet til at frygte.

Ethvert brugerdefineret værktøj, der håndterer filer, tager imod uploads, redigerer kode live, eller eksekverer kommandoer på en server, altså præcis den type funktionalitet utallige udviklere bygger til deres egne admin-paneler, matcher heuristisk signaturen på en web shell tæt nok til, at en automatiseret scanner ikke altid kan se forskellen. Forskellen mellem "legitimt internt værktøj" og "ondsindet bagdør" kan være nul på kodeniveau.

Det alene ville bare være et svært teknisk problem. Det, der gør det til et strukturelt problem, er, hvordan reaktionen er bygget op omkring den usikkerhed: ødelæg først, på millisekunder, uden øjebliksbillede, uden holdingtilstand, og uden nogen mulighed for at filens reelle ejer kan sige noget, før den er væk.

· · ·

Dashboardet viser "Backups: Daily", som om det løser sagen. Det gør det ikke. En daglig backup er ét øjebliksbillede på et fast tidspunkt, normalt tidlig morgen. Alt arbejde udført efter det øjebliksbillede og før en hændelse har intet sikkerhedsnet overhovedet, og scanneren har ingen viden om, hvornår sidste backup kørte, når den beslutter sig for at handle.

En udvikler, der aktivt arbejder på en kritisk fil, hvilket er præcis situationen her, kan miste timer eller dages nyligt arbejde, uanset om "daglig backup" er slået til, simpelthen fordi hostingudbyderens backup-politik og scannerens sikkerhedspolitik aldrig var designet til at tale sammen.

· · ·

Alvoren her forblev ikke uændret. Den eskalerede med hvert svar. Det, der først lignede én forkert slettet fil, viste sig at være et masse-scan, anvendt identisk på hver hostet konto, uanset hvor gammel eller hvor nyligt ændret hver fil var.

Så viste det sig, at "sikkerhedsnettet" fra daglige backups har et indbygget hul, som næsten ikke dækker nogen, der arbejder dagligt på sine egne filer. Så viste det sig, at den tilbudte allowlist-løsning bryder ved den næste kodeændring, og beskytter en version af filen, ikke produktet. Så viste det sig, at der slet ikke findes en proaktiv vej, kun en reaktiv: du indsender et hash, efter du allerede er blevet brændt, og håber det næste signatur-opdatering ikke brænder dig igen.

· · ·

Ingen hos Hostinger satte sig for at ødelægge en kundes produkt; ond vilje er ikke problemet her. Problemet er en sikkerhedsmodel, der per design ikke pålideligt kan skelne mellem aktivt udviklet legitim software og en trussel, og som ikke har nogen strukturel mekanisme til at løse det på lang sigt, kun oprydning fra sag til sag, efter fakta.

Den klareste skriftlige indrømmelse af det kom sent i tråden, fra en menneskelig agent, i klart sprog: det udgør en løbende operationel risiko for kundens softwaredistributionsmodel. Ikke en engangsulejlighed. En løbende risiko, anerkendt skriftligt, uden nogen planlagt løsning.

For en junior-udvikler, der læser dette: lektien er ikke "byg ikke admin-værktøjer". Det er, at enhver filhåndtering, upload-behandler eller kommando-eksekvering, du bygger, selv fuldt autentificeret og adgangskontrolleret, har brug for en plan for, hvad der sker, hvis din hosts automatiserede sikkerhed nogensinde beslutter, at den ser mistænkelig ud, fordi "det er legitimt" ikke er et forsvar, en scanner forstår.

For en senior-udvikler eller en teknisk leder, der evaluerer hostingudbydere: spørg, før du underskriver noget, hvad din udbyders automatiserede sikkerhed gør i det øjeblik, den markerer en af dine filer. Spørg om der findes en holdingtilstand. Spørg om der tages et øjebliksbillede før sletning. Spørg hvordan afhjælpning ser ud ved en bekræftet falsk positiv. "Vi tømmer den, og du gendanner fra din egen backup" er en hæftelse, du ville acceptere på vegne af hvert eneste produkt, du hoster der, udklædt som en funktion.

// det med småt

Kontrakten svarer allerede på det spørgsmål, en advokat ville stille

Disse klausuler kommer direkte fra Hostingers egne, offentligt publicerede Universal Terms of Service Agreement og Hosting Agreement. Ingen af dem er usædvanlige for en hostingudbyder isoleret set, men tilsammen viser de præcis, hvor meget af risikoen der som udgangspunkt ligger hos kunden.

Backup er udtrykkeligt kundens ansvar
Direkte fra Hosting Agreement: Hostinger er ikke ansvarlig for filer og data på kontoen, og kunden skal selv vedligeholde sine backups, uanset enhver automatisk backup tilbudt "as a courtesy."
Ansvar udelukket for ethvert datatab
Terms of Service udelukker ansvar for "any loss of data, whether due to hardware and/or software issues, unauthorized access or any other unforeseen circumstances". Den formulering er bred nok alene til at dække præcis denne hændelse.
Ansvar udelukket for selve scanningen
En separat klausul udelukker ansvar for "any review, scanning, access to Services (including any hosted environment)". Det dækker dermed skriftligt præcis den scanningshandling, der ødelagde filen.
Ansvar udelukket selv for fjernelseshandlingen
Samme afsnit udelukker ansvar for virus "including any removal or attempted removal thereof". Det dækker dermed deres egen sletningsproces, uanset om truslen var reel eller falsk positiv.
Erstatning loftbelagt, kort frist for krav
Selv i det bedste juridiske scenarie er det samlede ansvar loftbelagt til gebyrer betalt de seneste 12 måneder eller 10.000 EUR, alt efter hvad der er lavest, og ethvert krav skal rejses inden 12 måneder efter det opstår.
Luxembourgsk lov, og ingen forbrugerbeskyttelse
Aftalen er underlagt luxembourgsk lov, ikke dansk lov, og kunden behandles som en B2B-kunde, så EU's forbrugerbeskyttelsesregler (Direktiv 2005/29/EC) ikke gælder.

Kilde: Hostingers Universal Terms of Service Agreement og Hosting Agreement, offentligt publicerede, gældende på skrivetidspunktet.

// den officielle protokol

Deres egne indberetninger og politikker fortæller en anden historie

De to punkter nedenfor kommer ikke fra support-chatten. De kommer fra Hostingers egne offentlige juridiske indberetninger og publicerede politikker, og de modsiger, skriftligt, selve grundlaget denne sag er bygget på.

En offentlig EU-indberetning viser nul automatiserede detektionshandlinger, nogensinde
I sin officielle EU Digital Services Act-transparensrapport, der dækker perioden 17. februar 2024 – 16. februar 2025 og blev offentliggjort den 30. maj 2025, oplyser Hostinger 6.875 selv-initierede indholdshandlinger for rapporteringsperioden, 34 af dem for malware, og lister ingen af dem som udløst af "automated detection". Det modsiger direkte den supportforklaring, der blev givet i denne sag: en scanner, der handler helt på egen hånd, "på millisekunder", uden nogen menneskelig gennemgang, før filen blev ødelagt.
Deres egen misbrugspolitik lover en advarsel først, bare ikke fra denne scanner
Hostingers publicerede Abuse Handling Policy fastslår, at for et kompromitteret eller hacket domæne, indberettet af en tredjepart, sendes "a warning ... to the domain registrant", og suspension følger kun "if the registrant fails to remove the unauthorized content". Det er det stik modsatte af, hvad der skete her: indhold markeret af Hostingers eget interne scanner fik ingen advarsel og intet tidsvindue til at reagere, kun øjeblikkelig destruktion.

Kilder: Hostingers EU Digital Services Act-transparensrapport 2024–2025 (offentlig indberetning, rapporteringsperiode 17. februar 2024 – 16. februar 2025, offentliggjort 30. maj 2025) og Hostingers publicerede Abuse Handling Policy (hostinger.com/legal/abuse-policy), begge gældende på skrivetidspunktet.

Hostingudbyderens egne skriftlige ord: "this represents an ongoing operational risk" for legitim software, uden nogen planlagt løsning.
Åben sag · fuldt dokumenteret · opdateres hvis Hostingers holdning ændrer sig
TRACE