<?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: Nelson</title>
    <description>The latest articles on DEV Community by Nelson (@privlabs).</description>
    <link>https://dev.to/privlabs</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%2F3648477%2F76f56907-9ca6-4587-aabe-ae273ba2a9f1.jpg</url>
      <title>DEV Community: Nelson</title>
      <link>https://dev.to/privlabs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/privlabs"/>
    <language>en</language>
    <item>
      <title>PHP2Shell + Supply Chain: Why patching fast could make things worse</title>
      <dc:creator>Nelson</dc:creator>
      <pubDate>Fri, 23 Oct 2026 16:27:51 +0000</pubDate>
      <link>https://dev.to/privlabs/php2shell-supply-chain-why-patching-fast-could-make-things-worse-51h6</link>
      <guid>https://dev.to/privlabs/php2shell-supply-chain-why-patching-fast-could-make-things-worse-51h6</guid>
      <description>&lt;p&gt;Last week, PHP2Shell (CVE-2026-109618 and CVE-2026-109619, both CVSS 9.2) forced hundreds of websites offline worldwide, including government sites in France, Finland, and the Netherlands. PHP-based CMSs such as WordPress, Drupal, Joomla and Magento were all exposed.&lt;/p&gt;

&lt;p&gt;The message from CERT-EU was clear: &lt;strong&gt;patch immediately or take your site offline.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But there is a risk almost nobody is talking about.&lt;/p&gt;




&lt;h2&gt;
  
  
  The overlooked vector: your update channel
&lt;/h2&gt;

&lt;p&gt;When PHP2Shell broke, administrators worldwide rushed to patch. Fast patching is the right reflex, but speed creates a blind spot.&lt;/p&gt;

&lt;p&gt;In December 2025, I published a full supply chain attack simulation targeting the Drupal update mechanism, 10 months before PHP2Shell:&lt;/p&gt;

&lt;p&gt;👉 GitHub: privlabs/Supply-Chain-Attack-Simulation-on-Drupal&lt;/p&gt;

&lt;p&gt;The attack works like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Attacker gains MITM position (DNS poisoning or network compromise)&lt;/li&gt;
&lt;li&gt;Deploys a rogue server with a forged    SSL certificate impersonating 
updates.drupal.org&lt;/li&gt;
&lt;li&gt;Serves a crafted release-history.xml&lt;/li&gt;
&lt;li&gt;Admin sees: "Security update available"&lt;/li&gt;
&lt;li&gt;Admin installs the "patch"&lt;/li&gt;
&lt;li&gt;Payload executes: RCE + cron persistence&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The admin believes they patched. They installed a backdoor.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why PHP2Shell makes this worse
&lt;/h2&gt;

&lt;p&gt;PHP2Shell created exactly the conditions that make supply chain attacks more likely to succeed:&lt;/p&gt;

&lt;p&gt;→ Admins are under pressure to patch fast&lt;br&gt;
→ Security alerts create urgency&lt;br&gt;
→ Urgency reduces verification habits&lt;br&gt;
→ "I need to patch PHP NOW" &lt;br&gt;
  = less likely to verify the update source&lt;/p&gt;

&lt;p&gt;This is not hypothetical. My PoC demonstrates the full attack chain on &lt;br&gt;
Drupal 9.5.10, 10.1.0, 11.0.8, and 11.1.3 &lt;br&gt;
— tested in a controlled lab environment.&lt;/p&gt;




&lt;h2&gt;
  
  
  The combined scenario
&lt;/h2&gt;

&lt;p&gt;Standard PHP2Shell response:&lt;br&gt;
→ Admin patches PHP ✅&lt;br&gt;
→ Result: SAFE ✅&lt;/p&gt;

&lt;p&gt;Supply chain + PHP2Shell scenario:&lt;br&gt;
→ Admin thinks they patch PHP ✅ (belief)&lt;br&gt;
→ Rogue server delivers malware instead ❌&lt;br&gt;
→ PHP2Shell still present ❌&lt;br&gt;
→ Backdoor installed ❌&lt;br&gt;
→ Result: COMPROMISED while believing they are protected ❌&lt;/p&gt;

&lt;p&gt;The vulnerability is not in PHP or Drupal core. It is in the trust model: &lt;br&gt;
administrators trust that updates.drupal.org is always the real updates.drupal.org.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Patch fast = good.&lt;br&gt;
 Verify where the patch comes from = even better.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  How to protect yourself
&lt;/h2&gt;

&lt;p&gt;Before patching any CMS in a PHP2Shell &lt;br&gt;
context:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Verify the update server URL&lt;br&gt;
Check DNS resolution of updates.drupal.org&lt;br&gt;
Compare against known good IPs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Verify package signatures&lt;br&gt;
Drupal packages should be signed&lt;br&gt;
Do not skip signature verification under time pressure&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Check your SSL certificate Is the certificate issued by the &lt;br&gt;
expected CA?&lt;br&gt;
Any anomaly = stop and investigate&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Monitor for MITM indicators &lt;br&gt;
Unusual DNS responses &lt;br&gt;
Certificate changes on known domains &lt;br&gt;
Unexpected outbound connections&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For a full hardening guide specific to Drupal update security, see:&lt;br&gt;
→ HARDENING.md in my repository&lt;br&gt;
→ DETECTION.md for blue team monitoring tips&lt;/p&gt;




&lt;h2&gt;
  
  
  Responsible disclosure note
&lt;/h2&gt;

&lt;p&gt;My December 2025 research does not exploit a vulnerability in Drupal core.&lt;br&gt;
It demonstrates a supply chain attack simulation in a controlled lab environment for defensive and educational purposes only.&lt;/p&gt;

&lt;p&gt;DISCLAIMER: Do not use these techniques against any system you do not own or without explicit permission.&lt;/p&gt;




&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;p&gt;→ My PoC (December 2025): &lt;br&gt;
  github.com/privlabs/Supply-Chain-Drupal&lt;br&gt;
→ CERT-EU PHP2Shell advisory:&lt;br&gt;
  cert.europa.eu/publications/security-advisories/2026-018/&lt;br&gt;
→ CVE-2026-109618 (NVD)&lt;br&gt;
→ CVE-2026-109619 (NVD)&lt;br&gt;
→ The Register — PHP2Shell coverage&lt;/p&gt;




&lt;p&gt;Independent Security Researcher&lt;br&gt;
CVE-2025-69690 (CVSS 8.8) &amp;amp; &lt;br&gt;
CVE-2025-69691 (CVSS 9.9) — NVD/NIST&lt;br&gt;
github.com/privlabs&lt;/p&gt;

</description>
      <category>php</category>
      <category>drupal</category>
      <category>cybersecurity</category>
      <category>supplychainattack</category>
    </item>
    <item>
      <title>Why I Built an Offline Pre-Audit Platform for Supply Chain Security (Before Scanning or Pentesting)</title>
      <dc:creator>Nelson</dc:creator>
      <pubDate>Mon, 15 Dec 2025 10:19:09 +0000</pubDate>
      <link>https://dev.to/privlabs/why-i-built-an-offline-pre-audit-platform-for-supply-chain-security-before-scanning-or-pentesting-1jln</link>
      <guid>https://dev.to/privlabs/why-i-built-an-offline-pre-audit-platform-for-supply-chain-security-before-scanning-or-pentesting-1jln</guid>
      <description>&lt;p&gt;In many security engagements, I kept seeing the same pattern.&lt;/p&gt;

&lt;p&gt;Teams would start with:&lt;/p&gt;

&lt;p&gt;scanners&lt;/p&gt;

&lt;p&gt;pentests&lt;/p&gt;

&lt;p&gt;long lists of findings&lt;/p&gt;

&lt;p&gt;But very often, the real problem wasn’t what was exploitable,&lt;br&gt;
it was where trust assumptions were already broken.&lt;/p&gt;

&lt;p&gt;The gap before scanning&lt;/p&gt;

&lt;p&gt;Most incidents I worked on started with:&lt;/p&gt;

&lt;p&gt;weak sudoers configurations&lt;/p&gt;

&lt;p&gt;unsafe update mechanisms&lt;/p&gt;

&lt;p&gt;unpinned CI/CD dependencies&lt;/p&gt;

&lt;p&gt;exposed management interfaces&lt;/p&gt;

&lt;p&gt;These issues existed before any exploitation.&lt;/p&gt;

&lt;p&gt;Yet most tools focus on what happens after.&lt;/p&gt;

&lt;p&gt;Enter PrivLabs&lt;/p&gt;

&lt;p&gt;I built PrivLabs to sit before scanning and exploitation.&lt;/p&gt;

&lt;p&gt;PrivLabs is an offline supply-chain pre-audit assessment platform designed to:&lt;/p&gt;

&lt;p&gt;identify early risk signals&lt;/p&gt;

&lt;p&gt;structure findings&lt;/p&gt;

&lt;p&gt;help teams decide where to focus first&lt;/p&gt;

&lt;p&gt;It is intentionally:&lt;/p&gt;

&lt;p&gt;non-exploiting&lt;/p&gt;

&lt;p&gt;non-invasive&lt;/p&gt;

&lt;p&gt;offline&lt;/p&gt;

&lt;p&gt;human-centric&lt;/p&gt;

&lt;p&gt;What PrivLabs does&lt;/p&gt;

&lt;p&gt;Linux privilege escalation pre-audit&lt;/p&gt;

&lt;p&gt;CI/CD pipeline trust analysis&lt;/p&gt;

&lt;p&gt;Supply-chain configuration reviews&lt;/p&gt;

&lt;p&gt;Executive-friendly risk summaries&lt;/p&gt;

&lt;p&gt;What it does not do&lt;/p&gt;

&lt;p&gt;No exploitation&lt;/p&gt;

&lt;p&gt;No active attacks&lt;/p&gt;

&lt;p&gt;No scanning&lt;/p&gt;

&lt;p&gt;No data storage or transmission&lt;/p&gt;

&lt;p&gt;PrivLabs complements pentesting — it doesn’t replace it.&lt;/p&gt;

&lt;p&gt;Why offline matters&lt;/p&gt;

&lt;p&gt;In many environments (enterprise, regulated, air-gapped), uploading data to SaaS tools is simply not an option.&lt;/p&gt;

&lt;p&gt;PrivLabs processes everything in-memory, with no persistence.&lt;/p&gt;

&lt;p&gt;Try it&lt;/p&gt;

&lt;p&gt;Live demo:&lt;br&gt;
&lt;a href="https://privlabs-security-toolkit.streamlit.app/" rel="noopener noreferrer"&gt;https://privlabs-security-toolkit.streamlit.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Project overview:&lt;br&gt;
&lt;a href="https://privlabs.github.io/supplychain-security-toolkit/" rel="noopener noreferrer"&gt;https://privlabs.github.io/supplychain-security-toolkit/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feedback is welcome — especially from people working in Blue Team, consulting, or DevSecOps roles.&lt;/p&gt;

</description>
      <category>security</category>
      <category>infosec</category>
      <category>opensource</category>
      <category>cicd</category>
    </item>
    <item>
      <title>Supply Chain Attack Simulation on Drupal: RCE via Malicious Update Server (PoC, not a CVE)</title>
      <dc:creator>Nelson</dc:creator>
      <pubDate>Thu, 11 Dec 2025 14:43:56 +0000</pubDate>
      <link>https://dev.to/privlabs/supply-chain-attack-simulation-on-drupal-rce-via-malicious-update-server-poc-not-a-cve-4ijc</link>
      <guid>https://dev.to/privlabs/supply-chain-attack-simulation-on-drupal-rce-via-malicious-update-server-poc-not-a-cve-4ijc</guid>
      <description>&lt;p&gt;&lt;strong&gt;What if a malicious actor could hijack the update server for your favorite CMS? I built a full lab scenario to show how it’s possible — and how to defend against it.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MITM, rogue CA, fake update feeds (release-history.xml), trojanized package, RCE + persistence&lt;/li&gt;
&lt;li&gt;Everything documented: attack steps, screenshots, scripts (in the PDF), hardening tips&lt;/li&gt;
&lt;li&gt;NOT a Drupal 0-day — just a realistic simulation for security awareness&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why does it matter?
&lt;/h2&gt;

&lt;p&gt;Supply chain attacks are &lt;em&gt;not&lt;/em&gt; theoretical anymore. This demo can help Blue Teams, Red Teams, devs, and trainers build better defenses and awareness.&lt;/p&gt;

&lt;p&gt;👉 [See the repo &amp;amp; full PDF PoC] GitHub repo: &lt;a href="https://github.com/privlabs/-Supply-Chain-Attack-Simulation-on-Drupal-RCE-via-Malicious-Update-Server-PoC-not-a-CVE-" rel="noopener noreferrer"&gt;https://github.com/privlabs/-Supply-Chain-Attack-Simulation-on-Drupal-RCE-via-Malicious-Update-Server-PoC-not-a-CVE-&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Questions, feedback, want to collaborate? DM or email me (contact in README).&lt;br&gt;&lt;br&gt;
&lt;em&gt;All lab, all safe, no harm to real-world systems!&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  cybersecurity #supplychainsecurity #securityresearch
&lt;/h1&gt;

&lt;h1&gt;
  
  
  offensivesecurity #redteam #blueteam #devsecops
&lt;/h1&gt;

&lt;h1&gt;
  
  
  drupal #websecurity #rce #mitm
&lt;/h1&gt;

</description>
      <category>cybersecurity</category>
      <category>security</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Open-source tool: Detect &amp; fix Linux cron job privilege escalation (LPE)</title>
      <dc:creator>Nelson</dc:creator>
      <pubDate>Fri, 05 Dec 2025 19:56:19 +0000</pubDate>
      <link>https://dev.to/privlabs/open-source-tool-detect-fix-linux-cron-job-privilege-escalation-lpe-35n0</link>
      <guid>https://dev.to/privlabs/open-source-tool-detect-fix-linux-cron-job-privilege-escalation-lpe-35n0</guid>
      <description>&lt;p&gt;After several months of research and lab testing, I’m releasing a complete guide + scripts to detect and fix privilege escalation via misconfigured cron jobs on Linux.&lt;/p&gt;

&lt;p&gt;🚀 &lt;strong&gt;Key features:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automated audit of cron jobs for security issues&lt;/li&gt;
&lt;li&gt;Exploitation examples&lt;/li&gt;
&lt;li&gt;Hardening tips&lt;/li&gt;
&lt;li&gt;Open-source scripts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 &lt;em&gt;Example: root shell on a cloud VM through a simple cron misconfiguration (see repo for details).&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;For sysadmins, SecOps, pentesters, or anyone passionate about Linux security.&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;GitHub repo:&lt;/strong&gt; &lt;a href="https://github.com/privlabs/lpe-cron-misconfig-2025" rel="noopener noreferrer"&gt;https://github.com/privlabs/lpe-cron-misconfig-2025&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feel free to test, comment, or contribute! Would love your feedback or stories of similar issues you’ve found.&lt;/p&gt;

&lt;h1&gt;
  
  
  linux #security #opensource #cron #infosec #sysadmin
&lt;/h1&gt;

</description>
      <category>linux</category>
      <category>security</category>
      <category>opensource</category>
      <category>infosec</category>
    </item>
  </channel>
</rss>
