<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Kuore Lab — Teknoblogi</title>
  <link>https://kuorelab.fi/blog/fi/</link>
  <atom:link href="https://kuorelab.fi/blog/fi/rss.xml" rel="self" type="application/rss+xml"/>
  <description>Kuore Labin tiimi kirjoittaa aika ajoin teknisistä ongelmista, tietoturvasta ja selvittämistään kysymyksistä.</description>
  <language>fi</language>
  <lastBuildDate>Mon, 26 Oct 2026 11:39:48 +0000</lastBuildDate>
  <item>
    <title>Kiireinen lokakuu ohjelmistojen tietoturvassa: kriittisiä haavoittuvuuksia PHP:ssä, GitLabissa, Node.js:ssä ja Symfonyssä</title>
    <link>https://kuorelab.fi/blog/2026-10-critical-vulnerabilities/fi/</link>
    <guid isPermaLink="true">https://kuorelab.fi/blog/2026-10-critical-vulnerabilities/fi/</guid>
    <pubDate>Sat, 24 Oct 2026 00:00:00 +0000</pubDate>
    <description>Lokakuun 15.–23. päivänä PHP:hen, GitLabiin, Node.js:ään ja Symfonyyn julkaistiin korjauksia kriittisiin haavoittuvuuksiin. Kaksi haavoittuvuuksista oli niin vakavia, että Suomessa suljettiin väliaikaisesti valtionhallinnon verkkosivustoja. Kerromme, mitä tapahtui ja millaista ratkaisua kehitämme pysyäksemme uusien uhkien tasalla.</description>
    <content:encoded><![CDATA[<h2>Muutama sana tästä blogista</h2>
<p>Työssämme tulee jatkuvasti vastaan teknisiä ongelmia, tietoturvakysymyksiä ja ohjelmistojen yllättävää toimintaa. Osa havainnoista voi kiinnostaa muitakin.</p>
<p>Päätimme kirjoittaa niistä tänne silloin tällöin. Ei mitään turhan virallista — kerromme, mitä olemme selvittäneet, mitä olemme oppineet ja mitkä tekniset yksityiskohdat ansaitsevat mielestämme tulla jaetuiksi.</p>
<p>Ensimmäisessä kirjoituksessamme tarkastelemme useita vakavia tietoturvahaavoittuvuuksia, jotka tulivat julki lokakuussa 2026.</p>

<h2>Yksi viikko, useita kriittisiä haavoittuvuuksia</h2>
<p>Lokakuun 15.–23. päivänä useisiin laajalti käytettyihin ohjelmistoihin julkaistiin korjauksia kriittisten haavoittuvuuksien vuoksi.</p>
<div class="kl-table-scroll">
<table>
  <thead>
    <tr><th>Ohjelmisto</th><th>CVE</th><th>Vaikutus</th><th>CVSS</th></tr>
  </thead>
  <tbody>
    <tr><td>PHP</td><td>CVE-2026-109618, 109619</td><td>Etäkoodin suoritus</td><td>9.2</td></tr>
    <tr><td>GitLab / Onigmo</td><td>CVE-2026-89078, 93577, 97229, 110264</td><td>Etäkoodin suoritus</td><td>Jopa 10.0</td></tr>
    <tr><td>Node.js</td><td>CVE-2026-111497</td><td>Muistin korruptio / RCE</td><td>9.2</td></tr>
    <tr><td>Symfony</td><td>CVE-2026-108082</td><td>Palvelunesto</td><td>8.7</td></tr>
  </tbody>
</table>
</div>

<h3>PHP: niin vakavia haavoittuvuuksia, että viranomaissivustoja suljettiin varotoimena</h3>
<p>Kaksi PHP:n haavoittuvuutta, jotka tunnettiin yhteisnimellä <em>PHP2Shell</em>, saattoivat mahdollistaa koodin suorittamisen etänä ilman tunnistautumista.</p>
<p>Ongelmat liittyivät muistin vioittumiseen ja globaalin tilan virheelliseen käsittelyyn. Korjaukset julkaistiin 21. lokakuuta versioissa PHP 8.5.12, 8.4.27, 8.3.36 ja 8.2.35.</p>
<p>Mahdolliset seuraukset olivat niin vakavia, että Suomen valtionhallinnon ICT-palvelukeskus Valtori rajoitti väliaikaisesti pääsyä useisiin julkisiin palveluihin varotoimena. Vastaavista toimista raportoitiin muissakin Euroopan maissa.</p>
<p>Sivustojen sulkemisen taustalla ei ollut vahvistettua tietomurtoa. Viranomaiset eivät halunneet ottaa riskiä.</p>
<p class="kl-sources"><a href="https://www.rapid7.com/blog/post/etr-cve-2026-109618-and-cve-2026-109619-critical-unauthenticated-remote-code-execution-in-php/" rel="noopener">Rapid7-analyysi</a> · <a href="https://yle.fi/a/74-20252600" rel="noopener">Yle</a></p>

<h3>GitLab: haavoittuvuuksia kahdentoista vuoden ikäisessä koodissa</h3>
<p>Neljä GitLabissa havaittua haavoittuvuutta juontui Onigmo-säännöllisten lausekkeiden moottorista, jota Ruby käyttää.</p>
<p>Viat liittyivät muistinhallinnan ongelmiin ja kokonaislukujen ylivuotoihin. Tietyissä olosuhteissa tarkoituksella muotoiltu syöte voi laukaista etäkoodin suorituksen.</p>
<p>Kahden haavoittuvuuden CVSS-arvoksi ilmoitettiin 10.0 eli asteikon maksimi. Niiden hyödyntämisen ei kerrottu edellyttävän tunnistautumista.</p>
<p>Ehkä yllättävin yksityiskohta on, että haavoittuvan koodin kerrotaan olevan peräisin GitLab 7.0:sta, joka julkaistiin vuonna 2014.</p>
<p>Ensimmäinen korjaus osoittautui puutteelliseksi, joten lokakuussa tarvittiin vielä uusi korjauskierros.</p>
<p>Ruby julkaisi korjaukset 23. lokakuuta, ja niitä seurasivat päivitetyt GitLab-paketit.</p>
<p class="kl-sources"><a href="https://thehackernews.com/2026/10/ruby-fixes-three-regex-engine-bugs.html" rel="noopener">The Hacker News</a> · <a href="https://lilting.ch/en/articles/ruby-regexp-onigmo-fixes-gitlab-cves" rel="noopener">Tekninen analyysi</a></p>

<h3>Node.js: vakava virhe pakatun datan purussa</h3>
<p>CVE-2026-111497, lempinimeltään <em>Node2Shell</em>, koskee Node.js:n mukana tulevaa Brotli-purkajaa.</p>
<p>Virheellisesti muotoiltu pakattu tietovirta voi johtaa kirjoittamiseen varatun muistialueen ulkopuolelle ja johtaa mahdollisesti etäkoodin suoritukseen.</p>
<p>Koska Brotlia käytetään laajalti HTTP-pakkauksessa, sovellukset, jotka käsittelevät epäluotettua pakattua sisältöä, voivat olla haavoittuvia.</p>
<p>Ongelma korjattiin versioissa Node.js 22.23.4, 24.22.1 ja 26.12.1.</p>
<p class="kl-sources"><a href="https://nodejs.org/en/blog/vulnerability/october-2026-security-releases" rel="noopener">Node.js:n tietoturvatiedote</a></p>

<h3>Symfony: välilyönneillä voi kuormittaa palvelinta</h3>
<p>CVE-2026-108082 on säännöllisten lausekkeiden käsittelyyn liittyvä palvelunestohaavoittuvuus Symfonyn HttpFoundation-komponentissa.</p>
<p>Pitkiä välilyöntijonoja sisältävä, tarkoituksella muotoiltu HTTP-otsake voi johtaa säännöllisen lausekkeen poikkeuksellisen raskaaseen takaisinjäljitykseen (backtracking) ja kuluttaa runsaasti prosessoriaikaa.</p>
<p>Hyökkääjä voi toistuvilla pyynnöillä lamauttaa sovelluksen ilman tunnistautumista.</p>
<p>Haavoittuvuus sai CVSS-pistemäärän 8.7, ja se korjattiin versioissa Symfony 5.4.54, 6.4.46, 7.4.19 ja 8.1.7.</p>
<p class="kl-sources"><a href="https://app.opencve.io/cve/CVE-2026-108082" rel="noopener">CVE:n tiedot</a></p>

<h2>Muutama ajatus</h2>
<p>Huomiomme kiinnittyi haavoittuvuuksien vakavuuden lisäksi siihen, kuinka arkisista asioista ne johtuivat: muistinkäsittelystä, syötteiden jäsentämisestä, säännöllisistä lausekkeista ja pakatun datan purkamisesta.</p>
<p>Osa vioista oli ilmeisesti pysynyt huomaamatta vuosien kehitystyön ja lukuisten ohjelmistoversioiden ajan.</p>
<p>On myös hyvä muistaa, ettei oman sovelluskoodin päivittäminen riitä, jos haavoittuvuus on jossakin sen käyttämässä riippuvuudessa.</p>

<h2>Mitä aiomme tehdä asialle?</h2>
<p>Tätä kaikkea seuratessamme tulimme yksinkertaiseen johtopäätökseen: uusien haavoittuvuuksien seuraaminen ja niiden vaikutusten tarkistaminen käsin ei ole pitkällä aikavälillä järkevä ratkaisu.</p>
<p>Niinpä olemme päättäneet rakentaa itsellemme robotin.</p>
<p>Robotti seuraisi jatkuvasti haavoittuvuustietokantoja ja tietoturvatiedotteita, tunnistaisi käyttämäämme teknologiaan mahdollisesti vaikuttavat uudet haavoittuvuudet ja käynnistäisi sitten koodimme automaattisesti eristetyissä testiympäristöissä eli hiekkalaatikkokonteissa tarvittavine riippuvuuksineen ja asetuksineen.</p>
<p>Näissä ympäristöissä se suorittaisi tietoturvaskannauksia ja testejä mahdollisten haavoittuvuuksien löytämiseksi — jatkuvasti, ei vain silloin, kun joku muistaa tarkistaa tilanteen.</p>
<p>Automaattinen skannaus ei tietenkään löydä kaikkea. Silti tarkistukset kannattaa mielestämme antaa robotin tehtäväksi sen sijaan, että luottaisimme pelkästään käsin tehtäviin tarkistuksiin ja ajoittaisiin tietoturva-auditointeihin.</p>
<p>Se on joka tapauksessa suunnitelma. Kerromme lisää projektin edetessä.</p>
<p class="kl-cta"><strong>Haluaisitko samanlaisen ratkaisun omille ohjelmistoillesi? Voimme rakentaa sen myös sinulle. <a href="/fi/#contacts">Ota yhteyttä.</a></strong></p>

<hr>
<p class="kl-post-foot"><em>Perustuu julkisesti saatavilla oleviin tietoturvatiedotteisiin ja teknisiin raportteihin 24. lokakuuta 2026 mennessä.</em></p>]]></content:encoded>
  </item>
</channel>
</rss>
