<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged upload</title>
<link>https://coderlegion.com/tag/upload</link>
<description>Powered by Question2Answer</description>
<item>
<title>What SafeLine's PHP Core Rule Actually Watches in the Request</title>
<link>https://coderlegion.com/32462/what-safelines-php-core-rule-actually-watches-in-the-request</link>
<description>&lt;p&gt;The PHP Core rule SafeLine shipped on 21 October is not a generic &quot;block all uploads&quot; switch. It is aimed at request features from the known chain behind CVE-2026-109618 and CVE-2026-109619.&lt;/p&gt;
&lt;p&gt;Four signs are called out in the rule note. A request that carries &lt;code&gt;PHP_SESSION_UPLOAD_PROGRESS&lt;/code&gt;. A &lt;code&gt;PHPSESSID&lt;/code&gt; that fits the characteristic pattern. A content type of &lt;code&gt;multipart/form-data&lt;/code&gt;. A body that combines abnormal form fields with suspicious content. Any one of those can appear in legitimate software. The rule is about the combination associated with the chain, which is why the first setting is observe, not drop.&lt;/p&gt;
&lt;p&gt;That focus follows from CVE-2026-109618, which is about multipart parsing and memory state. Upload and form posts are the traffic you should be able to name in a log: time, source address, site, path, and the rule name PHPCoreRCECVE-2026-109618/109619. The write-up is at &lt;a rel=&quot;nofollow&quot; href=&quot;https://rivers.chaitin.cn/discussion/dbc7qkj1s5rlia466a30&quot;&gt;the rule discussion&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;CVE-2026-109619 is the other half. Worker global state can linger between requests. The WAF rule will not print the worker's memory. It will tell you which HTTP client was sending the chain's request shape at the time a pool misbehaved. Use both logs.&lt;/p&gt;
&lt;p&gt;Import the rule from the SafeLine rule library. Set the action to blacklist. Enable observe mode. Review a sample of hits against a known-good upload from your own application. If your application itself sends &lt;code&gt;PHP_SESSION_UPLOAD_PROGRESS&lt;/code&gt; on a normal photo upload, you need that fact before you block, not after.&lt;/p&gt;
&lt;p&gt;When the hits are probes rather than product traffic, move the rule to an intercept action and keep the event record for the follow-up on disk and credentials.&lt;/p&gt;
&lt;h4 id=&quot;does-the-rule-fire-on-every-multipart-post-&quot;&gt;Does the rule fire on every multipart post?&lt;/h4&gt;
&lt;p&gt;It is built around the known chain's features, not every form on the internet.&lt;/p&gt;
&lt;h4 id=&quot;what-should-a-useful-hit-contain-&quot;&gt;What should a useful hit contain?&lt;/h4&gt;
&lt;p&gt;Time, source IP, site, path, and the rule name. Those are the fields worth capturing in the event view.&lt;/p&gt;
&lt;h4 id=&quot;can-i-skip-observe-mode-if-i-trust-the-signature-&quot;&gt;Can I skip observe mode if I trust the signature?&lt;/h4&gt;
&lt;p&gt;You can, but the published guidance is to observe first so a real upload path is not the thing you discover by outage.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;SafeLine has surpassed 700,000 installations worldwide as of September 30, 2026. SafeLine Pro annual promotional pricing is $650-$880, compared with the regular $1,000 per year.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SafeLine website: &lt;a rel=&quot;nofollow&quot; href=&quot;https://ly.cyberserval.tech/MqhYdmI&quot;&gt;https://ly.cyberserval.tech/MqhYdmI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Demo: &lt;a rel=&quot;nofollow&quot; href=&quot;https://demo.waf.chaitin.com:9443/statistics&quot;&gt;https://demo.waf.chaitin.com:9443/statistics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Official docs: &lt;a rel=&quot;nofollow&quot; href=&quot;https://docs.waf.chaitin.com/en/home&quot;&gt;https://docs.waf.chaitin.com/en/home&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/chaitin/SafeLine&quot;&gt;https://github.com/chaitin/SafeLine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Pro offer: &lt;a rel=&quot;nofollow&quot; href=&quot;https://cyberserval.tech/landing/lto&quot;&gt;https://cyberserval.tech/landing/lto&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/32462/what-safelines-php-core-rule-actually-watches-in-the-request</guid>
<pubDate>Mon, 26 Oct 2026 04:17:15 +0000</pubDate>
</item>
<item>
<title>What to Inspect After a PHP Core Rule Hit</title>
<link>https://coderlegion.com/32463/what-to-inspect-after-a-php-core-rule-hit</link>
<description>&lt;p&gt;A SafeLine hit on the PHP Core rule is a starting point, not a closed case. CVE-2026-109618 and CVE-2026-109619 are serious because a crafted request can disturb the runtime or leave worker state behind. If the rule fires, or if the server looks wrong without a clean explanation, widen the search the same day.&lt;/p&gt;
&lt;p&gt;Start with the event SafeLine already stored: attack time, source address, site, path, and the rule name. The 21 October rule is documented at &lt;a rel=&quot;nofollow&quot; href=&quot;https://rivers.chaitin.cn/discussion/dbc7qkj1s5rlia466a30&quot;&gt;the rule page&lt;/a&gt;. Match that minute to the web access log and the PHP error log. You are looking for the same client, the same path, and a runtime fault.&lt;/p&gt;
&lt;p&gt;Then look at files. Check the web root, the upload directory, and the temporary directory PHP uses for multipart bodies. Look for PHP files that appeared or changed recently and that no deploy can explain. A new file next to an upload endpoint is more interesting than a hit with no file change, but both deserve a note.&lt;/p&gt;
&lt;p&gt;Process and network checks come next. Unknown processes, unexpected outbound connections, and cron entries you did not add are reasons to treat the host as suspect. If that bar is met, rotate high-privilege accounts, database accounts, and API keys. Do not rotate everything on the first observe-mode hit from a scanner. Do rotate when logs and files agree that something landed.&lt;/p&gt;
&lt;p&gt;Keep the rule in observe until you know your own upload traffic, then move it to block. Upgrade the PHP pool that served the hit. Restart that pool. Confirm the site still logs in and still accepts a normal file. The rule watches the chain. The upgrade removes the bug the chain is aimed at.&lt;/p&gt;
&lt;h4 id=&quot;what-is-the-minimum-record-to-keep-&quot;&gt;What is the minimum record to keep?&lt;/h4&gt;
&lt;p&gt;Time, source IP, site, path, rule name, and whether a file changed.&lt;/p&gt;
&lt;h4 id=&quot;should-every-hit-trigger-a-credential-rotation-&quot;&gt;Should every hit trigger a credential rotation?&lt;/h4&gt;
&lt;p&gt;No. Rotate when logs or files show more than a probe.&lt;/p&gt;
&lt;h4 id=&quot;does-blocking-replace-the-php-upgrade-&quot;&gt;Does blocking replace the PHP upgrade?&lt;/h4&gt;
&lt;p&gt;No. Blocking is a control at the proxy. The runtime still has to be patched.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;SafeLine has surpassed 700,000 installations worldwide as of September 30, 2026. SafeLine Pro annual promotional pricing is $650-$880, compared with the regular $1,000 per year.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SafeLine website: &lt;a rel=&quot;nofollow&quot; href=&quot;https://ly.cyberserval.tech/MqhYdmI&quot;&gt;https://ly.cyberserval.tech/MqhYdmI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Demo: &lt;a rel=&quot;nofollow&quot; href=&quot;https://demo.waf.chaitin.com:9443/statistics&quot;&gt;https://demo.waf.chaitin.com:9443/statistics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Official docs: &lt;a rel=&quot;nofollow&quot; href=&quot;https://docs.waf.chaitin.com/en/home&quot;&gt;https://docs.waf.chaitin.com/en/home&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/chaitin/SafeLine&quot;&gt;https://github.com/chaitin/SafeLine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Pro offer: &lt;a rel=&quot;nofollow&quot; href=&quot;https://cyberserval.tech/landing/lto&quot;&gt;https://cyberserval.tech/landing/lto&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/32463/what-to-inspect-after-a-php-core-rule-hit</guid>
<pubDate>Mon, 26 Oct 2026 04:17:14 +0000</pubDate>
</item>
</channel>
</rss>