Taggat med: XML

Oberoende granskning av Firefox uppdateringsförfarande

Tyska säkerhetsföretaget X41 D-Sec GmbH har genomfört en oberoende teknisk säkerhetsgranskning av Firefox uppdateringsförfarande. Dvs den infrastruktur som har hand om uppdateringar samt kodbasen som tillhör både klient och serverdel.

Resultatet av denna granskning påvisar inga allvarliga säkerhetsbrister. Dock uppdagades tre säkerhetsbrister i Balrog med hög allvarlighetsgrad. Balrog är den uppdateringsserver som Firefox använder sig av och finns på Github här.

Fördelningen över resterande säkerhetsbrister som identifierats fördelar sig enligt följande:

Granskningsgruppen rekommenderar även att XML-filer som beskriver metadata om uppdateringar bör signeras. Även så kör uppdateringsservern enbart HTTP Basic Authentication som autentisering, utan rate-limit. Intressant även att de föreslår att Firefox skriver om delar av koden från C till ett säkrare programspråk såsom Rust eller Golang.

Stöd mitt bloggande via Patreon >

Jag gillar denna typ av offentliga säkerhetsgranskningar och speciellt eftersom rapporten finns att ladda ner i sin helhet (har bifogat den nedan). Tidigare har jag bl.a. skrivit om Mullvad som genomfört en offentlig granskning.

Granskningen som X41 D-Sec utförde tog 216 timmar och utfördes av fyra säkerhetsexperter varav en av dessa var kryptolog.

Här kan du ladda hem rapporten som PDF:

Källa

Sårbarhet i Episerver

Episploit - Klart Episerver sårbarheten ska ha en logo

För några månader sedan så upptäckte jag en sårbarhet i Episerver. Sårbarheten återfinnes i Episervers bloggmodul och är en så kallad blind (XXE) XML External Entity-sårbarhet. Jag rapporterade givetvis sårbarheten till företaget Episerver, och den finns åtgärdad från och med Episerver 7-patch 5.

Episerver används av mängder av företag och myndigheter såsom:

  • Försvarets materielverk (FMV)
  • Swedavia
  • Interflora
  • Vinnova
  • Smittskyddsinstitutet
  • Domstolsverket
  • Trafikverket
  • Myndigheten för samhällsskydd och beredskap, MSB

Buggen heter internt hos Episerver #128556 och jag har fått CVE registrerad som CVE-2017-17762.

Jag har även utvecklat en proof-of-concept kod i Python vid namn episploit.py som finns att hämta hem på Github Gist. Förutom att hämta hem en extern XML DTD som PoC:en jag har länkat, så går det även att detektera om en installation är sårbar genom att titta på DNS-förfrågningar ungefär som Burp Suite Collaborator gör. Att göra externa DNS-förfrågningar är effektivt eftersom många blockerar utgående TCP-anslutningar från sina webbservrar.

Det kan även vara möjligt att köra kod (Remote Code Execution, RCE) via en XXE. Se exempelvis följande blogginlägg där man använder sig av C#.

Och skärmdump som påvisar när en fil exfiltreras från en webbserver med hjälp av episploit:

Det är även möjligt att kontrollera huruvida en installation av Episerver är sårbar genom fingerprinting. Besök en sökväg som ser ut enligt följande:

  • https://www.domännamn.se/util/xmlrpc/Handler.ashx

Och där finner du längst ner på sidan vilken version som används. Jag är inte helt hundra på hur versionsummer ska utläsas men tror att alla som har version EPiServer.Blog 7.0.586 EPiServer.XmlRpc 7.0.586 samt lägre versioner är sårbara.

Åtgärder

Som en snabb åtgärd kan man blockera samtliga anrop till allt som börjar med en sökväg som är /util/xmlrpc. Även bör man blockera utgående trafik från webbservern och även DNS-förfrågningar.

Uppgradera till en senare version av Episerver och tyvärr så verkar det inte hjälpa att slå av bloggmodulen för denna bugg.

Tyvärr så listar inte Episerver säkerhetsuppdateringar på sin hemsida.

Tidslinje för offentliggörande (disclosure timeline)

  • 2017-12-12 Jag kontaktar CERT-SE som hänvisar till Episervers säkerhetschef
  • 2017-12-13 Får kontakt med Episervers säkerhetschef som hänvisar vidare inom organisationen
  • 2017-12-19 CVE-nummer reserveras
  • 2017-12-21 Episervers VP R&D bekräftar sårbarheten samt meddelar att buggen heter internt #128556 och åtgärdad från och med Episerver 7-patch 5
  • 2018-08-28 Info går ut till Kryptera.se-mailling-listan
  • 2018-08-29 Detta inlägg publiceras