`---------------------------------------------------------
Correct answer Information Disclosure in TCExam <= 12.2.5
---------------------------------------------------------
[-] Software Link:
http://www.tcexam.org/
[-] Vendor description:
TCExam is a Open Source system for electronic exams (also know as CBA –
Computer-Based Assessment, CBT – Computer-Based Testing or e-exam) that enables
educators and trainers to author, schedule, deliver, and report on quizzes,
tests and exams. TCExam is currently the most commonly used Open Source CBA
Software in the world. TCExam users includes important universities, schools,
public and private companies.
[-] Affected Versions:
Version 12.2.5 and prior versions.
[-] Vulnerability Description:
An instance of information disclosure on TCExam allows test takers to predict
the right answer to questions as long as the right answer was inserted first
during test creation time, which is the suggested way to create tests in the
software guide. This vulnerability can lead to fraudulent test results.
The vulnerability exists because even though answers are placed randomly on the
test page, the "<input>" element for each multiple-choice answer has an "id"
attribute with a numeric value indicating in which position the answer was
created. Therefore the lowest "id" will always be the right answer, as long as
the right answer was added to the question first during test creation time.
[-] Proof of Concept:
HTML block showing how the right answer contains the lowest value for the "id"
attribute in the "<input>" element, in this case "answerid_9".
------------8<------------
Question: what's 2+2?
<ol class="answer">
<li><input name="answerid" id="answerid_11" value="11" type="radio"> <label
for="answerid_11">Incorrect answer 2</label></li>
<li><input name="answerid" id="answerid_12" value="12" type="radio"> <label
for="answerid_12">Incorrect answer 3</label></li>
<li><input name="answerid" id="answerid_10" value="10" type="radio"> <label
for="answerid_10">Incorrect answer 1</label></li>
<li><input name="answerid" id="answerid_9" value="9" type="radio"> <label
for="answerid_9">Four</label></li>
</ol>
------------>8------------
[-] Solution:
Vendor applied fix and released version 13.0.0 with
https://github.com/tecnickcom/tcexam/commit/8caf06e61a1f1f94850b5fd546a43baed85a3417
[-] Disclosure Timeline:
[12/11/2015] - Vendor notified
[12/12/2015] - Vendor applied fix
[01/15/2016] - Public disclosure
[-] Credits:
Antonio Herraiz (@antonioherraizs).
[-] Other References:
https://www.antonioherraizs.com/correct-answer-information-disclosure-in-tcexam.html
`
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation