SugarCRM versions 9.0.1 and below suffer from multiple remote SQL injection vulnerabilities.
d7d53f88e5bd5cf9486ffe6a36ff47b3
--------------------------------------------------------
SugarCRM <= 9.0.1 Multiple SQL Injection Vulnerabilities
--------------------------------------------------------
[-] Software Link:
https://www.sugarcrm.com
[-] Affected Versions:
Version 9.0.1 and prior versions, 8.0.3 and prior versions.
[-] Vulnerabilities Description:
1) User input passed to the "/pmse_Inbox/changeCaseUser" REST API
endpoint
is not properly sanitized before being used to construct a SQL query.
This can be exploited by malicious users to e.g. read sensitive data
from the database through in-band SQL Injection attacks.
2) User input passed to the "/pmse_Project/CrmData/activities" REST API
endpoint
is not properly sanitized before being used to construct a SQL query.
This can
be exploited by malicious users to e.g. read sensitive data from the
database
through in-band SQL Injection attacks.
3) User input passed to the "/pmse_Project/CrmData/emails" REST API
endpoint is
not properly sanitized before being used to construct a SQL query. This
can be
exploited by malicious users to e.g. read sensitive data from the
database
through in-band SQL Injection attacks.
4) User input passed to the "/pmse_Project/CrmData/emailtemplates" REST
API
endpoint is not properly sanitized before being used to construct a SQL
query.
This can be exploited by malicious users to e.g. read sensitive data
from the
database through in-band SQL Injection attacks.
5) User input passed to the "/pmse_Project/CrmData/users" REST API
endpoint is
not properly sanitized before being used to construct a SQL query. This
can be
exploited by malicious users to e.g. read sensitive data from the
database
through in-band SQL Injection attacks.
6) User input passed through the "pro_module" JSON parameter to the
"/pmse_Project/CrmData/putData" REST API endpoint is not properly
sanitized
before being used to construct a SQL query. This can be exploited by
malicious
users to e.g. read sensitive data from the database through time-based
Blind SQL Injection attacks.
7) User input passed through the "cas_id" and "cas_index" parameters to
the
"/pmse_Project/CrmData/validateReclaimCase" REST API endpoint is not
properly
sanitized before being used to construct a SQL query. This can be
exploited by
malicious users to e.g. read sensitive data from the database through
time-based Blind SQL Injection attacks.
8) The vulnerability exists because the "/modules/Emails/Grab.php"
script is
using the "group_id" field of an "InboundEmail" bean to construct a SQL
query
without being properly sanitized, and such value can be arbitrarily
manipulated
through the MergeRecords module. This can be exploited by malicious
users to
e.g. read sensitive data from the database through boolean-based
second-order
SQL Injection attacks.
9) The vulnerability exists because the "/[module]/export" REST API
endpoint is
using a value that can be arbitrarily manipulated through the
"/[module]/record_list"
endpoint to construct a SQL query without being properly sanitized. This
can be
exploited by malicious users to e.g. read sensitive data from the
database
through in-band second-order SQL Injection attacks.
10) User input passed through the "order_by" parameter to the
"/link/history" REST
API endpoint is not properly sanitized before being used to construct a
SQL query.
This can be exploited by malicious users to e.g. read sensitive data
from the
database through time-based Blind SQL Injection attacks.
11) The vulnerability exists because the
"PersonFormBase::checkForDuplicates()"
method is using certain POST parameters to construct a SQL query without
being
properly sanitized. This can be exploited by malicious users to e.g.
read sensitive
data from the database through time-based SQL Injection attacks.
12) User input passed through the "act_name" JSON parameter to the
"/pmse_Inbox"
REST API endpoint is not properly sanitized before being used to
construct a SQL
query. This can be exploited by malicious users to e.g. read sensitive
data from
the database through time-based Blind SQL Injection attacks.
13) User input passed to the "/pmse_Inbox/processUsersChart" REST API
endpoint is
not properly sanitized before being used to construct a SQL query. This
can be
exploited by malicious users to e.g. read sensitive data from the
database through
in-band SQL Injection attacks. Successful exploitation of this
vulnerability
requires an user account with Admin/Developer access to the "Processes"
module.
14) User input passed through the "deal_tot_discount_percentage" JSON
parameter to
the "/Quotes" REST API endpoint is not properly sanitized before being
used to
construct a SQL query. This can be exploited by malicious users to e.g.
read
sensitive data from the database through time-based Blind SQL Injection
attacks.
15) User input passed through the "q" parameter to the
"/pmse_Inbox/unattendedCases"
REST API endpoint is not properly sanitized before being used to
construct a SQL
query. This can be exploited by malicious users to e.g. read sensitive
data from
the database through in-band SQL Injection attacks. Successful
exploitation of
this vulnerability requires an user account with Admin/Developer access
to
the "Processes" module.
16) User input passed to the "/pmse_Inbox/userListByTeam" REST API
endpoint is not
properly sanitized before being used to construct a SQL query. This can
be exploited
by malicious users to e.g. read sensitive data from the database through
in-band SQL Injection attacks.
[-] Solution:
Upgrade to version 9.0.2, 8.0.4, or later.
[-] Disclosure Timeline:
[07/02/2019] - Vendor notified
[01/10/2019] - Versions 9.0.2 and 8.0.4 released
[10/10/2019] - Publication of this advisory
[-] Credits:
Vulnerabilities discovered by Egidio Romano.
[-] Original Advisory:
http://karmainsecurity.com/KIS-2019-04
[-] Other References:
https://support.sugarcrm.com/Documentation/Sugar_Versions/9.0/Ent/Sugar_9.0.2_Release_Notes