The AJAX Chat/Shoutbox module in phpBB suffers from a cross site request forgery vulnerability.
177fc6233cf9c093a8506ad4594022e02d79d4edac20c5789a3406d47894ab7f
View here: https://www.stevenroddis.com/phpbb-ajax-chatshoutbox-mod-csrf-vulnerability/
Title: phpBB AJAX Chat/Shoutbox MOD CSRF Vulnerability
Release Date: 2011-04-30
Product Affected: http://startrekaccess.com/community/viewtopic.php?f=127&t=8675
Responsible Disclosure:
After repeated attempts to get the vendor to fix this flaw, he has told me to "Please stop taking up my time with something this trivial." I have provided a risk assessment, sources on CSRF including OWASP and my implementation on how to fix it.
If after a reasonable attempt to make the vendor realise it is a vulnerability, the vendor refuses to acknowledge the flaw, the vulnerability will be publicly published.
First vendor contact was made on 2011-04-24 and continued till the 29th where he cut contact.
Discription:
All actions taken on chat.php are not protected against CSRF, this includes add and delete chat messages.
Solution:
This solution carries no warranty or guarantees, that said it works with the version I have.
In config.php
$secretKey = 'CHANGE THIS TO SOMETHING SECURE';
in shout.php
116: 'CHAT_MAC' => hash_hmac('ripemd160', $user->data['user_id'], $secretKey)
in chat.php
49:
$chatMAC = request_var('mac', '');
56:
if($mode AND $chatMAC != hash_hmac('ripemd160', $user->data['user_id'], $secretKey)) //action taken
{
die('Hacking attempt! (CSRF)');
}
257: 'CHAT_MAC' => hash_hmac('ripemd160', $user->data['user_id'], $secretKey)
in templates:
after param = 'mode=' + mode;
Add param += '&mac=' + '{CHAT_MAC}';