Two weaknesses and multiple vulnerabilities have been discovered in Achievo, which can be exploited by malicious users to disclose sensitive information, bypass certain security restrictions, and conduct SQL injection attacks and by malicious people to disclose certain system information and conduct cross-site scripting attacks.
1) Input passed via the "searchstring" parameter to dispatch.php (when "atknodetype" is set to "search.search" and "atkaction" is set to "search") is not properly sanitised in modules/search/class.search.inc before being returned to the user.
2) Input passed via the "field" and "usercol" parameters to include.php (when "file" is set to "atk/popups/colorpicker.inc") is not properly sanitised in atk/popups/colorpicker.inc before being returned to the user. This can be exploited to execute arbitrary HTML and script code in a user's browser session in context of an affected site.
3) An error exists due to the application not properly verifying the "owner" parameter while adding schedules in the "Scheduler" module. This can be exploited to add schedules to another user's calendar.
Successful exploitation of this vulnerability requires "Add" permissions for "Scheduler".
4) Input passed via the "node" parameter to include.php (when "file" is set to "atk/popups/help.inc") is not properly verified in atk/popups/help.inc before being used to include files. This can be exploited to include arbitrary files from local resources via directory traversal sequences and URL-encoded NULL bytes.
Successful exploitation of this vulnerability requires that "magic_quotes_gpc" is disabled.
5) Input passed via e.g. the "plotter" parameter to graph.php is not properly verified in the "atkuse()" function in atk/atktools.inc before being used to include files. This can be exploited to include arbitrary file from local resources via directory traversal sequences and URL-encoded NULL bytes.
Successful exploitation of this vulnerability requires that "magic_quotes_gpc" is disabled.
6) Input passed via the "viewstart" and "viewend" parameters to graph.php (when "atknodetype" is set to "project.project", "plotter" is set to "graph.dataGraphAttribute", "callback" is set to "timeline", and "projectid" is set) is not properly sanitised before being used in SQL queries. This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.
7) Input passed via the "atkselector" parameter to dispatch.php (when e.g. "atknodetype" is set to "project.project" and "atkaction" is set to "view") is not properly sanitised before being used in SQL queries. This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.
Successful exploitation of this vulnerability requires "Access" permissions for "Project" under "Project management".
8) Input passed via the "viewuser" parameter to dispatch.php (when "atknodetype" is seto to "timereg.hours" and "atkaction" is set to "admin") is not properly sanitised before being used in SQL queries. This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.
Successful exploitation requires "Access" permission for "Hours" under "Time registration".
9) Input passed via the "startdate" and "enddate" parameters to dispatch.php (when "atknodetype" is set to "reports.hoursurvey" and "atkaction" is set to "report") is not properly sanitised before being used in SQL queries. This can be exploited by manipulate SQL queries by injecting arbitrary SQL code.
Successful exploitation of this vulnerability requires "Access" permissions for "Time Survey" under "Reports".
10) The application displays the full installation path within error messages in atk/skel/atkappsuite.php and atk/attributes/fck/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php.
11) Input passed via the "id" parameter to dispatch.php (when "atkaction" is set to "vcard" and "atkstackid" is set to a valid value) is not properly sanitised in the "action_vcard()" function in modules/person/class.person.inc before being used in SQL queries. This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.
Successful exploitation of this vulnerability requires the "Access" permissions for "Employee" under "Employee management".
12) Input passed via the "activityid" parameter to dispatch.php (when "atknodetype" is set to "project.activity" and "atkaction" is set to "stats") is not properly sanitised before being used in a SQL query. This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.
Successful exploitation of this vulnerability requires certain "Project" permissions.
The vulnerabilities are confirmed in version 1.4.5. Other versions may also be affected.
Vulnerable Products
Vulnerable Software: Achievo 1.x
Solution
Edit the source code to ensure that no system information gets disclosed and input is properly sanitised and verified.