Previewing merge directive meta-data contents is not possible
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Confirmed
|
Medium
|
Unassigned |
Bug Description
If I receive a merge directive (created by bzr send), there is no way to fully preview its contents including meta-data (such as full commit messages, committers and authors) before actually merging & committing it.
The only way that I figured out is as follows:
1. branch my main development trunk in to a separate merge directive merging branch
2. merge the received merge directive to the newly created branch
3. commit the merge to the branch
4. do "bzr log -n0" and similar things to see what actually came with the merge directive
5. merge the change to trunk if it is acceptable
The above workflow seems a bit tedious. There must be a simpler way to review merge directives. One alternative to the above is to merge and commit to trunk and then uncommit and revert if the received merge directive is not something I want... but I do not want to commit something to trunk before I know what it is even though uncommit is possible.
If I do not commit but just merge, I can do bzr diff and bzr st to see some data about the introduced changes, but I can not review the full commit messages for example (I can see only a small snippet of meta-data with bzr st).
I think I should be able to see the full contents of a merge directive INCLUDING the meta-data with "bzr merge --preview /path/to/
"bzr log /path/to/
I see this as a security vulnerability as well.
Let's think about the following scenario:
1. A project uses primarily merge directives to receive code patches.
2. I want to sabotage the project.
3. I look at their code until I find a genuine bug, a place where documentation could be improved, a typo or anything else worth a patch. This is easy with any open source project.
4. I make a patch.
5. I add some malicious content (see below) in the commit message or other meta-data.
6. I send a merge directive to the project.
7. The project reviews the merge directive with the current workflow. This means that only my patch gets reviewed but not the meta-data embedded in the merge directive.
8. My merge directive gets merged (with the malicious payload in the meta-data) because the patch is great.
9a. If the project is windows centric, suddenly many project developers start getting false anti-virus alerts when they pull my malicious meta-data which in this case happens to be a string which is identical to some virus pattern detected by many anti-virus products. The developers are unable to work with their branches any longer unless they disable their anti-virus software.
9b. If the project has loggerhead or other web interface to their Bazaar repository, I could embed some string which looks like malicious web site content when indexed by Google and others. Suddenly the project web site is flagged as hosting malware in Google search results and many "safe browsing" solutions.
10. It is troublesome for the project to recover from this situation because Bazaar does not offer a facility for editing (meta-data) history.
visibility: | private → public |
Changed in bzr: | |
status: | New → Confirmed |
importance: | Undecided → Medium |
tags: | added: check-for-breezy |
There is a thread about this at bazaar mailing list: comments. gmane.org/ gmane.comp. version- control. bazaar- ng.general/ 70768
http://