If a project is open source, that typically means you are free to modify the software as you wish (but do take a look at the particular open source project's license -- not all open source projects are alike). Regarding how you can contribute to one, that again depends on the particular project. The common scenario is that there's a small group of core developers who have the permission to commit changes to the CVS repository and others will have to first submit their patches to the core developers who then decide whether to commit the patch into CVS or not.