Technically user should have write permissions on '/jcr:system/jcr:versionStorage'.
As the jcr:system & jcr:versionStorage are protected, the ACL's cannot be added explicitly on these nodes. The only way is to provide a user the read/write permissions at root(/) level which gives them read/write permissions on /jcr:system also.
Go to http://<host>:<port>/crx/explorer/index.jsp
Go to Content Explorer
Add an ACE to your jcr:system node that allows jcr:versionMangement to the given author user.
Save the ACE
Login with the author user & verify.