Comments (10)
Do you expect the redirect to be https as well?
I do. Here's the attack, which isn't very difficult if I had a few weeks to invest in spearfishing a specific company:
- I know foocorp uses groovy-eclipse
- I setup a wifi network near their office or coffee shop with the same name
- I pass all their traffic through unaltered, except groovy-eclipse jars. I can't see or alter your https requests, but I can fake the responses to your http requests and you have no way to tell.
- I replace your groovy-eclipse jars with malicious ones: https://github.com/mveytsman/dilettante
from groovy-eclipse.
@JLLeitschuh Yes, I know. I updated the urls that had available https support. I'm not entirely sure the springsource maven repo is even used anymore. If it is, it's part of the deployment, so you could generate an update site from the git repo securely. Pivotal is investigating.
from groovy-eclipse.
+1 for this; our security group takes a dim view of download sites without TLS/SSL and no other cryptographic way to authenticate file integrity, e.g., PGP signatures
There are way too many examples of where exploits have been distributed when proper precautions aren't taken...
from groovy-eclipse.
Just FYI, download.eclipse.org
started to support https
in Nov 2018 (bug #444350). Hopefully we'll be able to uplevel security across the eclipse community.
from groovy-eclipse.
Quick update from Andy: "I had a look with our sys admin, he turned on cloud flare which is what we use to make this work in other cases. It didn’t work though, (temporarily broke http too!), he might have some more cycles to look at in a little while."
from groovy-eclipse.
So the main update site is actually built as a redirect to the versioned update site. Below is the content for http://dist.springsource.org/release/GRECLIPSE/e4.10/compositeContent.xml Do you expect the redirect to be https as well?
<repository name="Groovy Eclipse Latest Release for Eclipse e4.10" type="org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository" version="1.0.0">
<properties size="1">
<property name="p2.timestamp" value="1515114810753"/>
</properties>
<children size="1">
<child location="http://dist.springsource.org/release/GRECLIPSE/3.2.0/e4.10"/>
</children>
</repository>
from groovy-eclipse.
I updated our pom to use https where possible. If the springsource.org site(s) can be made to support https, I'll make sure the composite site xml redirects to https as well.
from groovy-eclipse.
@eric-milles This is still not fixed in the repository.
Source Locations
Lines 316 to 320 in addc606
Lines 330 to 334 in addc606
Vulnerability
CWE-829: Inclusion of Functionality from Untrusted Control Sphere
CWE-494: Download of Code Without Integrity Check
The build files indicate that this project is resolving dependencies over HTTP instead of HTTPS. Any of these artifacts could have been MITM to maliciously compromise them and infect the build artifacts that were produced. Additionally, if any of these JARs or other dependencies were compromised, any developers using these could continue to be infected past updating to fix this.
This vulnerability has a CVSS v3.0 Base Score of 8.1/10
https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Public Disclosure
This vulnerability needs to be publicly disclosed.
Option 1: File for a CVE
A project maintainer for this project should probably file for a CVE number to inform the public about this vulnerability in the build for this project. The goal is to inform the public that there was a potential for published build artifacts to have been maliciously compromised in earlier releases.
If a maintainer on this project works for or is associated with a CNA, please have them file it with them:
cve.mitre.org/cve/request_id.html
Otherwise, an open source CVE should be filed for here:
iwantacve.org
Option 2: Manually validate the release artifacts
If this project's build is fully reproducible. An alternative to filing for a CVE is to go back and build the earlier releases (with the HTTPS patch applied) to confirm the artifacts were not tampered when they were built. This can be done by comparing the hashes of the artifacts built locally with the ones published. If the hashes of all previous artifacts match those that are published, you can safely assume that the releases were not tampered with.
Again, this assumes that the build if fully reproducible and will require significantly more work.
from groovy-eclipse.
Update sites should be available via https. Thanks Andy. @nedtwigg @JLLeitschuh Can you give them a try?
from groovy-eclipse.
I can confirm that they work. Thanks Eric!
from groovy-eclipse.
Related Issues (20)
- Content-assist proposals with exact-match text are not promoted HOT 1
- Compute hover fails for member of type variable element HOT 1
- Fix type inferencing and syntax highlighting for type variable with multiple bounds HOT 1
- Add support for Groovy 4.0.21
- Organize Imports drops import for same-unit inner class
- Fix type inferencing and syntax highlighting for inaccessible fields and properties HOT 2
- Add support for Eclipse 4.32 (2024-06)
- Fix type inferencing and syntax highlighting for lazy-init static field HOT 1
- Fix type inferencing and code navigation for `metaClass` property write HOT 1
- Fix type inferencing and syntax highlighting for `empty` property of delegate map HOT 1
- Fix type inferencing and syntax highlighting for `this.field` reference within map-based type HOT 1
- Fix type inferencing and syntax highlighting for reference to public field of map-based type HOT 1
- Fix type inferencing and syntax highlighting for package-private field of map-based, other-package subclass HOT 1
- Fix type inferencing and syntax highlighting for other-package reference to package-private field HOT 1
- Fix type inferencing and syntax highlighting for same-unit subclass HOT 1
- Fix type inferencing and syntax highlighting for `class` and `metaClass` properties of map-based type HOT 1
- Fix source range for property or attribute expression within binary expression HOT 1
- Fix syntax highlighting and code navigation for type-checked `metaClass` property HOT 1
- Fix source range for dynamic name selector HOT 1
- Recent updates of groovy-eclipse are all failing with "Unexpected end of ZLIB input stream" HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from groovy-eclipse.