<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Merradou Abderrahmane</title>
    <description>The latest articles on DEV Community by Merradou Abderrahmane (@merradou).</description>
    <link>https://dev.to/merradou</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F954008%2Feeddccff-ba35-472f-9c9e-9d37c8e30fb6.jpeg</url>
      <title>DEV Community: Merradou Abderrahmane</title>
      <link>https://dev.to/merradou</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/merradou"/>
    <language>en</language>
    <item>
      <title>Check the PHP runtime serving your website after the October security update</title>
      <dc:creator>Merradou Abderrahmane</dc:creator>
      <pubDate>Thu, 22 Oct 2026 18:00:07 +0000</pubDate>
      <link>https://dev.to/merradou/check-the-php-runtime-serving-your-website-after-the-october-security-update-5hba</link>
      <guid>https://dev.to/merradou/check-the-php-runtime-serving-your-website-after-the-october-security-update-5hba</guid>
      <description>&lt;p&gt;PHP released fixes on October 21 for CVE-2026-109618 and CVE-2026-109619, two critical vulnerabilities that can allow unauthenticated remote code execution. PHP-FPM users need to update too.&lt;/p&gt;

&lt;p&gt;The fixed releases are &lt;strong&gt;8.2.35, 8.3.36, 8.4.27 and 8.5.12&lt;/strong&gt;, or vendor packages containing equivalent fixes.&lt;/p&gt;

&lt;p&gt;I covered the advisories and the European response in &lt;a href="https://medium.com/@abderrahmane.merradou/php-releases-emergency-patches-for-two-critical-vulnerabilities-following-public-exploit-claims-1d9d3bdcea60" rel="noopener noreferrer"&gt;my full article on Medium&lt;/a&gt;. Here are the deployment checks from it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check the version your website actually uses
&lt;/h2&gt;

&lt;p&gt;First, verify the PHP runtime serving web requests. &lt;code&gt;php -v&lt;/code&gt; checks your command-line installation; your website may use a different version.&lt;/p&gt;

&lt;p&gt;Then check every deployed instance: containers, additional servers, staging environments exposed to the internet, and older applications still running quietly somewhere.&lt;/p&gt;

&lt;p&gt;Install the update, restart the relevant services or replace the containers, and confirm the running workers use the patched build. Test the application's important flows after deployment.&lt;/p&gt;

&lt;p&gt;A vendor may patch an older package without changing its upstream version number. Check its security notice before relying on the number alone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Updating Composer or your project dependencies does not install these PHP runtime fixes.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  If someone else manages your hosting
&lt;/h2&gt;

&lt;p&gt;Send them the advisory and ask them to confirm which patch is running. If you manage the servers yourself, check the deployed environments before closing the ticket. It is easy to update one machine and leave another behind.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.php.net/archive/2026.php#2026-10-21-5" rel="noopener noreferrer"&gt;PHP's official announcement&lt;/a&gt; has the update instructions and the limits of temporary mitigations.&lt;/p&gt;

&lt;p&gt;Have you received confirmation from your hosting provider, or are you still waiting for the patched packages?&lt;/p&gt;

</description>
      <category>php</category>
      <category>security</category>
      <category>webdev</category>
      <category>devops</category>
    </item>
    <item>
      <title>Someone Poisoned Laravel's Most Trusted Packages — 233 Versions, 700 Repos</title>
      <dc:creator>Merradou Abderrahmane</dc:creator>
      <pubDate>Mon, 25 May 2026 13:31:43 +0000</pubDate>
      <link>https://dev.to/merradou/someone-poisoned-laravels-most-trusted-packages-233-versions-700-repos-2gg6</link>
      <guid>https://dev.to/merradou/someone-poisoned-laravels-most-trusted-packages-233-versions-700-repos-2gg6</guid>
      <description>&lt;p&gt;On May 22, 2026, an attacker spent exactly 15 minutes on a keyboard.&lt;/p&gt;

&lt;p&gt;When they were done, 233 versions of widely-used PHP packages had been silently replaced with credential-stealing malware. 700 GitHub repositories were compromised. And every developer who ran a routine &lt;code&gt;composer update&lt;/code&gt; that day potentially handed over their AWS keys, SSH keys, database passwords, and crypto wallet files to a stranger on the internet.&lt;/p&gt;

&lt;p&gt;No alarm fired. No error was thrown. The official GitHub repositories looked completely clean.&lt;/p&gt;




&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What:&lt;/strong&gt; Supply chain attack on the Laravel-Lang ecosystem — May 22, 2026&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How:&lt;/strong&gt; Attacker rewrote every version tag across 3 packages to point at a malicious fork — without touching the official repos' commit history&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What it stole:&lt;/strong&gt; Cloud credentials, SSH keys, browser passwords, crypto wallets, CI/CD secrets&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Who's at risk:&lt;/strong&gt; Anyone who installed or updated &lt;code&gt;laravel-lang/http-statuses&lt;/code&gt;, &lt;code&gt;laravel-lang/actions&lt;/code&gt;, or &lt;code&gt;laravel-lang/attributes&lt;/code&gt; on or around May 22&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Action needed:&lt;/strong&gt; Rotate your credentials now&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Are You Affected? Check This First
&lt;/h2&gt;

&lt;p&gt;Run this in your project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-E&lt;/span&gt; &lt;span class="s2"&gt;"laravel-lang/(http-statuses|actions|attributes)"&lt;/span&gt; composer.lock
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If any of these three packages appear and your dependencies were updated around May 22, 2026 — treat your environment as compromised and rotate everything immediately.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Happened — The 15-Minute Timeline
&lt;/h2&gt;

&lt;p&gt;Three packages were hit in a coordinated attack:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Time (UTC)&lt;/th&gt;
&lt;th&gt;Package&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;23:41&lt;/td&gt;
&lt;td&gt;&lt;code&gt;laravel-lang/http-statuses&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;23:45&lt;/td&gt;
&lt;td&gt;&lt;code&gt;laravel-lang/actions&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;23:56&lt;/td&gt;
&lt;td&gt;&lt;code&gt;laravel-lang/attributes&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;15 minutes. 3 packages. Every version tag. Rewritten.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Clever Part — Why the Repo Looked Clean
&lt;/h2&gt;

&lt;p&gt;This is what makes this attack different from a typical "bad package on Packagist" incident.&lt;/p&gt;

&lt;p&gt;GitHub allows version tags to point to commits in a &lt;strong&gt;fork&lt;/strong&gt; — not just the official repository. The attacker used this to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a malicious fork with credential-stealing code&lt;/li&gt;
&lt;li&gt;Rewrite every existing version tag in the official repo to point at their fork's commits&lt;/li&gt;
&lt;li&gt;Let Packagist serve the malicious code to anyone running &lt;code&gt;composer update&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you visited the official Laravel-Lang repos on GitHub that day — nothing looked suspicious. Clean commit history. Clean code. The poison was completely hidden inside a fork no one would think to check.&lt;/p&gt;




&lt;h2&gt;
  
  
  👉 The full breakdown is in the complete article:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://medium.com/@abderahmane.merradou/someone-poisoned-laravels-most-trusted-packages-233-versions-700-repos-in-15-minutes-e053d40538be" rel="noopener noreferrer"&gt;Read the complete writeup on Medium →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It covers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The exact mechanism of the &lt;code&gt;autoload.files&lt;/code&gt; payload&lt;/li&gt;
&lt;li&gt;The full list of credentials targeted (AWS, SSH, CI/CD, crypto wallets, browser passwords)&lt;/li&gt;
&lt;li&gt;Step-by-step recovery instructions&lt;/li&gt;
&lt;li&gt;The three rules that would have protected you&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;If this helped you or your team, share it. The faster this reaches the Laravel community, the faster affected developers can protect themselves.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>php</category>
      <category>webdev</category>
      <category>security</category>
    </item>
  </channel>
</rss>
