<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Memory Safety on Christoph Kemetmüller</title><link>https://xn--kemetmller-feb.com/tags/memory-safety/</link><description>Recent content in Memory Safety on Christoph Kemetmüller</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2026 Christoph Kemetmüller</copyright><lastBuildDate>Fri, 30 Oct 2026 23:46:58 +0100</lastBuildDate><atom:link href="https://xn--kemetmller-feb.com/tags/memory-safety/index.xml" rel="self" type="application/rss+xml"/><item><title>CVE-2026-109618 - PHP2Shell a week on: crashes on the web, root on PAN-OS</title><link>https://xn--kemetmller-feb.com/blog/php2shell-palo-alto-root/</link><pubDate>Fri, 30 Oct 2026 23:04:02 +0100</pubDate><guid>https://xn--kemetmller-feb.com/blog/php2shell-palo-alto-root/</guid><description>&lt;p&gt;A week after the &lt;a href="https://xn--kemetmller-feb.com/blog/php2shell/" &gt;PHP2Shell&lt;/a&gt; patches, &lt;a href="https://hunt.io/blog/php2shell-honeypot-shells-root-palo-alto-firewalls" target="_blank" rel="noreferrer"&gt;Hunt.io went through its open-directory captures&lt;/a&gt; and counted 616 files of exploit kits, cloned PoCs, scanners and post-exploitation tooling for &lt;a href="https://db.gcve.eu/vuln/CVE-2026-109618" target="_blank" rel="noreferrer"&gt;CVE-2026-109618&lt;/a&gt; and &lt;a href="https://db.gcve.eu/vuln/CVE-2026-109619" target="_blank" rel="noreferrer"&gt;CVE-2026-109619&lt;/a&gt;.&#10;Confirmed shells so far landed on honeypots and sensors; on the open web the heap chain mostly dies in memory exhaustion.&#10;One operator aimed it at a national government in Eastern Europe, got a crash, and went in through a different bug instead.&lt;/p&gt;&#10;&lt;p&gt;Palo Alto&amp;rsquo;s PAN-OS is the exception: its management interface runs the same PHP 8.0.30 build on every unpatched box, which turns a flaky heap exploit into a calibrated, repeatable one.&#10;Hunt.io found a PAN-OS adaptation of the chain in an exposed directory of the operator behind the 24 rooted firewalls from the earlier post, next to the AI tooling that whittled 19,000 firewalls down to 240 targets.&#10;The exploit itself is hand-calibrated work; nothing in the capture shows a model writing it.&#10;Turns out a software monoculture is an exploit developer&amp;rsquo;s best friend.&lt;/p&gt;&#10;&lt;p&gt;Four other hosts share a byte-identical ASLR-bypass kit whose lab logs end in &lt;code&gt;uid=33(www-data)&lt;/code&gt; against PHP 8.2.34 and 8.4.26.&#10;Fixed are PHP 8.2.35, 8.3.36, 8.4.27 and 8.5.12, and PAN-OS management interfaces belong off the internet.&lt;/p&gt;</description></item><item><title>CVE-2026-109618 - PHP RCE CVEs leaked before the patch was out</title><link>https://xn--kemetmller-feb.com/blog/php2shell/</link><pubDate>Thu, 29 Oct 2026 18:00:00 +0100</pubDate><guid>https://xn--kemetmller-feb.com/blog/php2shell/</guid><description>&lt;p&gt;On 20 October &lt;a href="https://cyberplace.social/@GossiTheDog/117474220875882526" target="_blank" rel="noreferrer"&gt;Kevin Beaumont noticed&lt;/a&gt; two PHP CVE IDs circulating before any patch existed, and by that evening &lt;a href="https://infosec.exchange/@wdormann/117475540081194496" target="_blank" rel="noreferrer"&gt;Will Dormann had spotted&lt;/a&gt; a Calif video of a proof of concept called php2shell working against WordPress.&#10;&lt;a href="https://thephp.foundation/blog/2026/10/21/todays-php-security-release-and-how-were-strengthening-php-security/" target="_blank" rel="noreferrer"&gt;The PHP Foundation&amp;rsquo;s account&lt;/a&gt; fills in the rest: no technical details leaked, just a wrong release time and a wrong CVSS of 10.0 (it is 9.2), but the early pre-announcement led Calif to publish that video by mistake, Chainguard shipped patched images more than six hours before the embargo lifted, and the release was pulled forward a day to 21 October.&#10;&lt;a href="https://www.php.net/archive/2026.php#2026-10-21-5" target="_blank" rel="noreferrer"&gt;The advisory&lt;/a&gt; describes two unauthenticated RCEs: hitting &lt;code&gt;memory_limit&lt;/code&gt; at the wrong moment leaves half-initialised request data that cleanup treats as valid (&lt;a href="https://db.gcve.eu/vuln/CVE-2026-109618" target="_blank" rel="noreferrer"&gt;CVE-2026-109618&lt;/a&gt;), and a fatal error can leave global state pointing into a previous request&amp;rsquo;s freed memory (&lt;a href="https://db.gcve.eu/vuln/CVE-2026-109619" target="_blank" rel="noreferrer"&gt;CVE-2026-109619&lt;/a&gt;), with the first triggerable on Apache with mod_php before any application code runs.&#10;Update to 8.5.12, 8.4.27, 8.3.36 or 8.2.35; the &lt;a href="https://infosec.exchange/@wdormann/117479190363340291" target="_blank" rel="noreferrer"&gt;stopgaps Dormann passed on&lt;/a&gt; (&lt;code&gt;memory_limit=-1&lt;/code&gt;, &lt;code&gt;session.upload_progress.enabled=0&lt;/code&gt;, a small &lt;code&gt;post_max_size&lt;/code&gt;) each close only specific paths.&#10;The Foundation is also unusually frank that the OOM problem was first spotted in 2024 and the fix stalled for months, &amp;ldquo;a structural failure&amp;rdquo;, until Calif and OpenAI reported the same root cause on 11 August.&#10;Meanwhile a &lt;a href="https://jackalsyn.com/posts/php-up-2026.html" target="_blank" rel="noreferrer"&gt;pre-patch &amp;ldquo;weaponized&amp;rdquo; write-up&lt;/a&gt; has since demoted its own bug to a non-RCE CVSS 5.3, proving that leaked CVE numbers attract confident guesses long before they attract facts.&lt;/p&gt;&#10;&lt;p&gt;Since the release, &lt;a href="https://arcticwolf.com/resources/blog/php2shell-critical-php-vulnerabilities-enable-unauthenticated-remote-code-execution/" target="_blank" rel="noreferrer"&gt;Arctic Wolf&lt;/a&gt; lists PHP-FPM, php-cgi, FrankenPHP and LiteSpeed as affected too, and saw wide scanning but only a few attempts to fetch second-stage payloads from a host serving the Mirai-derived Potassium botnet.&#10;The Delft Threat Intelligence Lab&amp;rsquo;s &lt;a href="https://php2shell.delftintellab.com/" target="_blank" rel="noreferrer"&gt;live tracker&lt;/a&gt; counted 66,494 requests from 645 IPs by 27 October, 47,900 of them probes only.&#10;A &lt;a href="https://news.ycombinator.com/item?id=50224916" target="_blank" rel="noreferrer"&gt;Show HN challenge&lt;/a&gt; put a bitcoin key worth about $502 on a server running pre-patch PHP 8.4.26, and KillaBoi got it out on 25 October.&#10;The &lt;a href="https://github.com/KillaBoi/StealMyBitcoin-PoC" target="_blank" rel="noreferrer"&gt;released PoC&lt;/a&gt; lands about seven runs in ten in a lab; the stored key did not derive the prize address, and the operator paid out anyway.&#10;&lt;a href="https://dreamgroup.com/blog/chained-php2shell-exploit-roots-25-servers" target="_blank" rel="noreferrer"&gt;Dream Group says&lt;/a&gt; a custom PHP2Shell build, chained with the &lt;a href="https://xn--kemetmller-feb.com/blog/fragnesia-cve-2026-46300/" &gt;Fragnesia&lt;/a&gt; kernel privilege escalation (&lt;a href="https://db.gcve.eu/vuln/CVE-2026-46300" target="_blank" rel="noreferrer"&gt;CVE-2026-46300&lt;/a&gt;), rooted 24 Palo Alto Networks PAN-OS firewalls with internet-facing management interfaces in the US, Japan, Taiwan and South Korea, plus the internal firewall management server of a US government-affiliated organisation, from which the attacker went after its Active Directory.&#10;Per Dream, Unit 42 has verified the tooling and tracks the activity as CL-UNK-1280, a Chinese-speaking actor in UTC+8, while Dream&amp;rsquo;s own &amp;ldquo;AI-assisted&amp;rdquo; label rests on Claude Code and a DeepSeek and Kimi driven offensive platform (aiscan) found on the attacker&amp;rsquo;s infrastructure, plus the scripts&amp;rsquo; commenting style.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Update 2026-10-30:&lt;/strong&gt; A week on, &lt;a href="https://xn--kemetmller-feb.com/blog/php2shell-palo-alto-root/" &gt;Hunt.io&amp;rsquo;s look at the tooling&lt;/a&gt; finds php2shell mostly crashing on the open web, with PAN-OS as the exception.&lt;/p&gt;</description></item><item><title>CVE-2026-110264 - Unauthenticated GitLab RCE via a crafted .org file</title><link>https://xn--kemetmller-feb.com/blog/cve-2026-110264/</link><pubDate>Thu, 22 Oct 2026 21:30:00 +0200</pubDate><guid>https://xn--kemetmller-feb.com/blog/cve-2026-110264/</guid><description>&lt;p&gt;&lt;a href="https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-5-1-released/" target="_blank" rel="noreferrer"&gt;GitLab&amp;rsquo;s October 21 patch release&lt;/a&gt; fixes &lt;a href="https://db.gcve.eu/vuln/CVE-2026-110264" target="_blank" rel="noreferrer"&gt;CVE-2026-110264&lt;/a&gt;: rendering a crafted &lt;code&gt;.org&lt;/code&gt; file lets an unauthenticated attacker run code on the server, CVSS 10.0.&#10;&lt;a href="https://lilting.ch/en/articles/gitlab-cve-2026-110264-org-mode-rce" target="_blank" rel="noreferrer"&gt;Ikesan&amp;rsquo;s analysis&lt;/a&gt; traces it to Onigmo, Ruby&amp;rsquo;s regex engine.&#10;The &lt;code&gt;#+TODO:&lt;/code&gt; keywords of an Org mode file go unescaped into &lt;code&gt;Regexp.new&lt;/code&gt;, and an integer overflow while compiling that pattern ends with commands running as the &lt;code&gt;git&lt;/code&gt; user.&#10;Every self-managed CE/EE release since 7.0 is affected; GitLab.com and Dedicated are already patched.&lt;/p&gt;&#10;&lt;p&gt;The fixed versions are 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10 and 18.11.13.&#10;18.10 and older get no fix, so those instances have to follow the upgrade path to 18.11.13 or later.&#10;If you just installed the October 12 releases (19.4.2, 19.3.5, 19.2.8), congratulations, you get to do it again.&#10;The bug is the third GitLab regex find from joaxcar via HackerOne, and GCVE already links a proof-of-concept repository, so this one shouldn&amp;rsquo;t wait for the next maintenance window.&lt;/p&gt;</description></item><item><title>Exploit Exercises - Protostar - Final levels</title><link>https://xn--kemetmller-feb.com/blog/exploit-exercises-protostar-final-levels/</link><pubDate>Sun, 02 Nov 2014 16:55:26 +0200</pubDate><guid>https://xn--kemetmller-feb.com/blog/exploit-exercises-protostar-final-levels/</guid><description>&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.vulnhub.com/entry/exploit-exercises-protostar-v2,32/" target="_blank" rel="noreferrer"&gt;Exploit-Exercises: Protostar&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&#10;&lt;p&gt;For this level we have got a binary listening on port 2995.&lt;/p&gt;&#10;&#10;&#10;&lt;p&gt;Let&amp;rsquo;s find out what this binary is up to.&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code class="language-c-objdump" data-lang="c-objdump"&gt;0x08049833 &amp;lt;main+0&amp;gt;: push %ebp&#10;0x08049834 &amp;lt;main+1&amp;gt;: mov %esp,%ebp&#10;0x08049836 &amp;lt;main+3&amp;gt;: and $0xfffffff0,%esp&#10;0x08049839 &amp;lt;main+6&amp;gt;: sub $0x20,%esp&#10;0x0804983c &amp;lt;main+9&amp;gt;: movl $0x0,0x8(%esp)&#10;0x08049844 &amp;lt;main+17&amp;gt;: movl $0x0,0x4(%esp)&#10;0x0804984c &amp;lt;main+25&amp;gt;: movl $0x8049c74,(%esp) ; &amp;#34;final0&amp;#34;&#10;0x08049853 &amp;lt;main+32&amp;gt;: call 0x8048e58 &amp;lt;background_process&amp;gt;&#10;0x08049858 &amp;lt;main+37&amp;gt;: movl $0xbb3,(%esp)&#10;0x0804985f &amp;lt;main+44&amp;gt;: call 0x80492f5 &amp;lt;serve_forever&amp;gt;&#10;0x08049864 &amp;lt;main+49&amp;gt;: mov %eax,0x18(%esp)&#10;0x08049868 &amp;lt;main+53&amp;gt;: mov 0x18(%esp),%eax&#10;0x0804986c &amp;lt;main+57&amp;gt;: mov %eax,(%esp)&#10;0x0804986f &amp;lt;main+60&amp;gt;: call 0x80493d5 &amp;lt;set_io&amp;gt;&#10;0x08049874 &amp;lt;main+65&amp;gt;: call 0x804975a &amp;lt;get_username&amp;gt;&#10;0x08049879 &amp;lt;main+70&amp;gt;: mov %eax,0x1c(%esp)&#10;0x0804987d &amp;lt;main+74&amp;gt;: mov $0x8049c7b,%eax ; &amp;#34;No such user %s\n&amp;#34;&#10;0x08049882 &amp;lt;main+79&amp;gt;: mov 0x1c(%esp),%edx&#10;0x08049886 &amp;lt;main+83&amp;gt;: mov %edx,0x4(%esp)&#10;0x0804988a &amp;lt;main+87&amp;gt;: mov %eax,(%esp)&#10;0x0804988d &amp;lt;main+90&amp;gt;: call 0x8048bac &amp;lt;printf@plt&amp;gt;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;We have got a service waiting for our commands.&#10;The magic is happening in get_username().&lt;/p&gt;</description></item><item><title>Exploit Exercises - Protostar - Heap levels</title><link>https://xn--kemetmller-feb.com/blog/exploit-exercises-protostar-heap-levels/</link><pubDate>Sat, 01 Nov 2014 11:52:17 +0200</pubDate><guid>https://xn--kemetmller-feb.com/blog/exploit-exercises-protostar-heap-levels/</guid><description>&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.vulnhub.com/entry/exploit-exercises-protostar-v2,32/" target="_blank" rel="noreferrer"&gt;Exploit-Exercises: Protostar&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&#10;&lt;p&gt;For this scenario we need to run the winner() function.&#10;To get a better idea about the binary a look at the assembly helps.&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code class="language-c-objdump" data-lang="c-objdump"&gt;0x08048492 &amp;lt;main+6&amp;gt;: sub $0x20,%esp&#10;0x08048495 &amp;lt;main+9&amp;gt;: movl $0x40,(%esp)&#10;0x0804849c &amp;lt;main+16&amp;gt;: call 0x8048388 &amp;lt;malloc@plt&amp;gt; ; malloc(64)&#10;0x080484a1 &amp;lt;main+21&amp;gt;: mov %eax,0x18(%esp) ; store address&#10;0x080484a5 &amp;lt;main+25&amp;gt;: movl $0x4,(%esp)&#10;0x080484ac &amp;lt;main+32&amp;gt;: call 0x8048388 &amp;lt;malloc@plt&amp;gt; ; malloc(4)&#10;0x080484b1 &amp;lt;main+37&amp;gt;: mov %eax,0x1c(%esp) ; store address&#10;0x080484b5 &amp;lt;main+41&amp;gt;: mov $0x8048478,%edx ; nowinner()&#10;0x080484ba &amp;lt;main+46&amp;gt;: mov 0x1c(%esp),%eax&#10;0x080484be &amp;lt;main+50&amp;gt;: mov %edx,(%eax)&#10;0x080484c0 &amp;lt;main+52&amp;gt;: mov $0x80485f7,%eax ; &amp;#34;data is at %p, fp is at %p\n&amp;#34;&#10;0x080484dd &amp;lt;main+81&amp;gt;: mov 0xc(%ebp),%eax&#10;...&#10;0x080484e0 &amp;lt;main+84&amp;gt;: add $0x4,%eax&#10;0x080484e3 &amp;lt;main+87&amp;gt;: mov (%eax),%eax&#10;0x080484e5 &amp;lt;main+89&amp;gt;: mov %eax,%edx&#10;0x080484e7 &amp;lt;main+91&amp;gt;: mov 0x18(%esp),%eax&#10;0x080484eb &amp;lt;main+95&amp;gt;: mov %edx,0x4(%esp)&#10;0x080484ef &amp;lt;main+99&amp;gt;: mov %eax,(%esp)&#10;0x080484f2 &amp;lt;main+102&amp;gt;: call 0x8048368 &amp;lt;strcpy@plt&amp;gt; ; vulnerable function&#10;0x080484f7 &amp;lt;main+107&amp;gt;: mov 0x1c(%esp),%eax ; load pointer&#10;0x080484fb &amp;lt;main+111&amp;gt;: mov (%eax),%eax ; follow pointer&#10;0x080484fd &amp;lt;main+113&amp;gt;: call %eax ; execute function pointer&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;So, the binary allocates 64+4 bytes on the heap.&#10;Afterwards, the argument is copied into the first allocated memory part.&#10;As strcpy does not limit the length, we can write into the second variable.&#10;That variable contains a function pointer that is executed afterwards.&lt;/p&gt;</description></item><item><title>Exploit Exercises - Protostar - Format String levels</title><link>https://xn--kemetmller-feb.com/blog/exploit-exercises-protostar-format-string-levels/</link><pubDate>Tue, 16 Sep 2014 13:21:27 +0200</pubDate><guid>https://xn--kemetmller-feb.com/blog/exploit-exercises-protostar-format-string-levels/</guid><description>&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.vulnhub.com/entry/exploit-exercises-protostar-v2,32/" target="_blank" rel="noreferrer"&gt;Exploit-Exercises: Protostar&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&#10;&lt;p&gt;First of all, we take a look at the disassembly.&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code class="language-c-objdump" data-lang="c-objdump"&gt;...&#10;0x08048431 &amp;lt;main+6&amp;gt;: sub $0x10,%esp&#10;0x08048434 &amp;lt;main+9&amp;gt;: mov 0xc(%ebp),%eax ; load pointer to the address of first argument&#10;0x08048437 &amp;lt;main+12&amp;gt;: add $0x4,%eax ; increment to get to the pointer of the second argument&#10;0x0804843a &amp;lt;main+15&amp;gt;: mov (%eax),%eax ; resolve pointer-pointer&#10;0x0804843c &amp;lt;main+17&amp;gt;: mov %eax,(%esp) ; store at address of esp&#10;0x0804843f &amp;lt;main+20&amp;gt;: call 0x80483f4 &amp;lt;vuln&amp;gt;&#10;...&#10;0x080483fa &amp;lt;vuln+6&amp;gt;: movl $0x0,-0xc(%ebp)&#10;0x08048401 &amp;lt;vuln+13&amp;gt;: mov 0x8(%ebp),%eax&#10;0x08048404 &amp;lt;vuln+16&amp;gt;: mov %eax,0x4(%esp)&#10;0x08048408 &amp;lt;vuln+20&amp;gt;: lea -0x4c(%ebp),%eax ; load address of target buffer&#10;0x0804840b &amp;lt;vuln+23&amp;gt;: mov %eax,(%esp) ; load address of second argument&#10;0x0804840e &amp;lt;vuln+26&amp;gt;: call 0x8048300 &amp;lt;sprintf@plt&amp;gt;&#10;0x08048413 &amp;lt;vuln+31&amp;gt;: mov -0xc(%ebp),%eax&#10;0x08048416 &amp;lt;vuln+34&amp;gt;: cmp $0xdeadbeef,%eax&#10;0x0804841b &amp;lt;vuln+39&amp;gt;: jne 0x8048429 &amp;lt;vuln+53&amp;gt;&#10;0x0804841d &amp;lt;vuln+41&amp;gt;: movl $0x8048510,(%esp)&#10;0x08048424 &amp;lt;vuln+48&amp;gt;: call 0x8048330 &amp;lt;puts@plt&amp;gt;&#10;...&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;So this program takes a startup argument.&#10;This input is then utilized in the sprintf at 0x0804840e.&#10;So to exploit this sample we have to perform a format string attack.&#10;The format string variable is located at EBP-0x4c.&#10;The variable for the challenge relevant comparison is located at EBP-0xc.&#10;So we need to write 64 bytes to align the payload of 0xdeadbeef.&#10;To write 64 bytes the format string expression %64x will suffice.&#10;Finally, we can complete the level with the following command.&lt;/p&gt;</description></item><item><title>Exploit Exercises - Protostar - Stack levels</title><link>https://xn--kemetmller-feb.com/blog/exploit-exercises-protostar-stack-levels/</link><pubDate>Sun, 31 Aug 2014 16:07:14 +0200</pubDate><guid>https://xn--kemetmller-feb.com/blog/exploit-exercises-protostar-stack-levels/</guid><description>&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.vulnhub.com/entry/exploit-exercises-protostar-v2,32/" target="_blank" rel="noreferrer"&gt;Exploit-Exercises: Protostar&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&#10;&lt;p&gt;For this scenario we need to overwrite the stack variable $modified.&#10;To get a better idea about the binary a look at the assembly helps.&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code class="language-c-objdump" data-lang="c-objdump"&gt;0x080483f4 &amp;lt;main+0&amp;gt;: push %ebp&#10;0x080483f5 &amp;lt;main+1&amp;gt;: mov %esp,%ebp&#10;0x080483f7 &amp;lt;main+3&amp;gt;: and $0xfffffff0,%esp&#10;0x080483fa &amp;lt;main+6&amp;gt;: sub $0x60,%esp&#10;0x080483fd &amp;lt;main+9&amp;gt;: movl $0x0,0x5c(%esp)&#10;0x08048405 &amp;lt;main+17&amp;gt;: lea 0x1c(%esp),%eax ;load $buffer address into EAX&#10;0x08048409 &amp;lt;main+21&amp;gt;: mov %eax,(%esp) ;set ESP&#10;0x0804840c &amp;lt;main+24&amp;gt;: call 0x804830c &amp;lt;gets@plt&amp;gt; ;vulnerable funtion&#10;0x08048411 &amp;lt;main+29&amp;gt;: mov 0x5c(%esp),%eax ;load $modified into EAX&#10;0x08048415 &amp;lt;main+33&amp;gt;: test %eax,%eax ;Sets ZF&#10;0x08048417 &amp;lt;main+35&amp;gt;: je 0x8048427 &amp;lt;main+51&amp;gt; ;$modified was not modified&#10;0x08048419 &amp;lt;main+37&amp;gt;: movl $0x8048500,(%esp)&#10;0x08048420 &amp;lt;main+44&amp;gt;: call 0x804832c &amp;lt;puts@plt&amp;gt;&#10;0x08048425 &amp;lt;main+49&amp;gt;: jmp 0x8048433 &amp;lt;main+63&amp;gt;&#10;0x08048427 &amp;lt;main+51&amp;gt;: movl $0x8048529,(%esp) ;target for main+35&#10;0x0804842e &amp;lt;main+58&amp;gt;: call 0x804832c &amp;lt;puts@plt&amp;gt;&#10;0x08048433 &amp;lt;main+63&amp;gt;: leave &#10;0x08048434 &amp;lt;main+64&amp;gt;: ret &lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;In order to overwrite the $modified variable the following command is sufficient to do the task.&lt;/p&gt;</description></item><item><title>Aviosoft Digital TV Player Professional 1.0 Stack Buffer Overflow</title><link>https://xn--kemetmller-feb.com/blog/aviosoft-buffer-overflow/</link><pubDate>Mon, 26 May 2014 13:05:09 +0000</pubDate><guid>https://xn--kemetmller-feb.com/blog/aviosoft-buffer-overflow/</guid><description>&lt;div&#10; &#10; class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"&#10; &#10; &gt;&#10; &lt;span&#10; &#10; class="text-primary-400 pe-3 flex items-center"&#10; &#10; &gt;&#10; &lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"&gt;&lt;path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/&gt;&lt;/svg&gt;&#10;&lt;/span&gt;&#10; &lt;/span&gt;&#10;&#10; &lt;span&#10; &#10; class="dark:text-neutral-300"&#10; &#10; &gt;&lt;strong&gt;Historical Content (2014):&lt;/strong&gt; This article demonstrates classic stack-based buffer overflow exploitation on Windows XP SP3. Modern Windows systems include mitigations such as ASLR, DEP/NX, and CFG that would prevent these techniques from working directly. The concepts remain valuable for understanding exploit development fundamentals.&lt;/span&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;p&gt;This post documents the process of developing a working exploit for a stack buffer overflow in Aviosoft Digital TV Player Professional 1.0. The vulnerability exists in the application&amp;rsquo;s playlist file parser, which copies user-supplied data into a fixed-size stack buffer without bounds checking.&lt;/p&gt;</description></item><item><title>Easy RM to MP3 Converter</title><link>https://xn--kemetmller-feb.com/blog/easy-rm-to-mp3-converter/</link><pubDate>Sun, 25 May 2014 11:27:27 +0000</pubDate><guid>https://xn--kemetmller-feb.com/blog/easy-rm-to-mp3-converter/</guid><description>&lt;div&#10; &#10; class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"&#10; &#10; &gt;&#10; &lt;span&#10; &#10; class="text-primary-400 pe-3 flex items-center"&#10; &#10; &gt;&#10; &lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"&gt;&lt;path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/&gt;&lt;/svg&gt;&#10;&lt;/span&gt;&#10; &lt;/span&gt;&#10;&#10; &lt;span&#10; &#10; class="dark:text-neutral-300"&#10; &#10; &gt;&lt;strong&gt;Historical Content (2014):&lt;/strong&gt; This article demonstrates classic stack-based buffer overflow exploitation on Windows XP SP3. Modern Windows systems include mitigations such as ASLR, DEP/NX, and CFG that would prevent these techniques from working directly. The concepts remain valuable for understanding exploit development fundamentals.&lt;/span&gt;&#10;&lt;/div&gt;&#10;&#10;&#10;&#10;&lt;ul&gt;&#10;&lt;li&gt;Windows XP SP3 (en-us)&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="http://www.immunityinc.com/products-immdbg.shtml" target="_blank" rel="noreferrer"&gt;Immunity Debugger&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="http://www.exploit-db.com/wp-content/themes/exploit/applications/707414955696c57b71c7f160c720bed5-EasyRMtoMP3Converter.exe" target="_blank" rel="noreferrer"&gt;Easy RM to MP3 Converter&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&#10;&#10;&lt;p&gt;First of all we need to identify the appropriate buffer size for the exploit.&#10;To do this, we simply execute the following python script.&lt;/p&gt;</description></item></channel></rss>