]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/security.mdwn
web commit by joey
[git.ikiwiki.info.git] / doc / security.mdwn
index 0731ff3c5794cfe7b16f64286e1481c3d74ac836..63d140ec50c4d054911b39169abc2ea748a0b56f 100644 (file)
@@ -44,12 +44,19 @@ this wiki, BTW.
 
 ## svn commit logs
 
-Anyone with svn commit access can forge "web commit from foo" and make it appeat on [[RecentChanges]] like foo committed. One way to avoid this would be to limit web commits to those done by a certian user.
+Anyone with svn commit access can forge "web commit from foo" and make it appear on [[RecentChanges]] like foo committed. One way to avoid this would be to limit web commits to those done by a certian user.
 
 It's actually possible to force a whole series of svn commits to appear to have come just before yours, by forging svn log output. This could be guarded against somewhat by revision number scanning, since the forged revisions would duplicate the numbers of unforged ones. Or subversion could fix svn log to indent commit messages, which would make such forgery impossible..
 
 ikiwiki escapes any html in svn commit logs to prevent other mischief.
 
+## page locking can be bypassed via direct svn commits
+
+A [[lock]]ed page can only be edited on the web by an admin, but
+anyone who is allowed to commit direct to svn can bypass this. This is by
+design, although a subversion pre-commit hook could be used to prevent
+editing of locked pages when using subversion, if you really need to.
+
 ----
 
 # Hopefully non-holes
@@ -84,7 +91,7 @@ been no problem yet.
 
 ikiwiki does not expose untrusted data to the shell. In fact it doesn't use
 system() at all, and the only use of backticks is on data supplied by the
-wiki admin. And it runs with taint checks on of course..
+wiki admin and untainted filenames. And it runs with taint checks on of course..
 
 ## cgi data security
 
@@ -109,7 +116,9 @@ Login to the wiki involves sending a password in cleartext over the net.
 Cracking the password only allows editing the wiki as that user though.
 If you care, you can use https, I suppose.
 
-# Fixed holes.
+# Fixed holes
+
+_(Unless otherwise noted, these were discovered and immediatey fixed by the ikiwiki developers.)_
 
 ## destination directory file replacement
 
@@ -134,4 +143,4 @@ directory with a symlink and trick it into following the link.
 
 Also, if someone checks in a symlink to /etc/passwd, ikiwiki would read and publish that, which could be used to expose files a committer otherwise wouldn't see.
 
-To avoid this, ikiwiki will avoid reading files that are symlinks, and uses locking to prevent more than one instance running at a time. The lock prevents one ikiwiki from running a svn up at the wrong time to race another ikiwiki. So only attackers who can write to the working copy on their own can race it.
\ No newline at end of file
+To avoid this, ikiwiki will avoid reading files that are symlinks, and uses locking to prevent more than one instance running at a time. The lock prevents one ikiwiki from running a svn up at the wrong time to race another ikiwiki. So only attackers who can write to the working copy on their own can race it.