Hacking a Virtual Power Plant
Ryan Castellucci identified vulnerabilities in GivEnergy's API related to a 512-bit RSA key, allowing unauthorized access. GivEnergy promptly upgraded to a 4096-bit key, emphasizing the need for secure cryptographic practices.
Read original articleRyan Castellucci's blog post discusses his experience with a virtual power plant after installing solar panels and a battery storage system. He explored the local network API provided by GivEnergy, which allowed him to control the system without relying on cloud services. During his experimentation, he discovered vulnerabilities in the API, particularly concerning the use of a 512-bit RSA key for signing JSON Web Tokens (JWTs). This key length is considered insecure, as it can be easily cracked. Castellucci successfully exploited this vulnerability by generating modified API tokens, allowing him to access sensitive account information, including that of an admin account. After notifying GivEnergy of the security flaw, the company responded promptly, implementing a fix by switching to a 4096-bit RSA key. Castellucci praised their quick response and emphasized the need for developers to avoid insecure cryptographic practices. He advocates for cryptography libraries to eliminate support for weak algorithms like 512-bit RSA to prevent similar vulnerabilities in the future.
- Ryan Castellucci discovered vulnerabilities in GivEnergy's API while experimenting with a virtual power plant.
- He exploited a 512-bit RSA key used for signing JWTs, allowing unauthorized access to sensitive account information.
- GivEnergy responded quickly to the reported vulnerability, upgrading to a 4096-bit RSA key.
- Castellucci emphasizes the importance of secure cryptographic practices and advocates for libraries to drop support for weak algorithms.
- His experience highlights the need for developers to be aware of cryptographic security issues.
Related
R1 jailbreakers find security flaw in Rabbit's code
A group of R1 jailbreakers discovered a security flaw in Rabbit's code, exposing hardcoded API keys. Rabbit took action after a month, revoking most compromised keys. The breach complicates Rabbit's recovery from R1 AI gadget issues.
3M iOS and macOS apps were exposed to potent supply-chain attacks
Vulnerabilities in CocoaPods server exposed 3 million apps to supply-chain attacks for a decade. Flaws allowed hackers to inject malicious code, compromising sensitive user data. Developers urged to prioritize security measures.
Give Me the Green Light Part 1: Hacking Traffic Control Systems
The author uncovers a critical vulnerability in a traffic controller's web interface, allowing unauthorized access to manipulate traffic signals. Vendor response was dismissive, leading to community support and plans for a CVE.
Git: The Stupid Password Store
Tyler Cipriani shares his experience with Git, emphasizing secure credential management. He recommends using tools like GerritLab and secure options like `osxkeychain` or `libsecret` for password storage.
512-bit RSA key in home energy system gives control of "virtual power plant"
Ryan Castellucci discovered a vulnerability in GivEnergy's system, allowing access to a 200 MW virtual power plant. GivEnergy fixed the issue within 24 hours, highlighting risks of outdated cryptographic standards.
- There are serious potential risks associated with exploiting the vulnerabilities, including the possibility of causing significant damage to electrical infrastructure.
- Users express frustration over the lack of security features in GivEnergy's systems, such as inadequate WiFi security and reliance on outdated cryptographic standards.
- Some commenters advocate for stronger security practices, including the use of more secure token systems and the importance of proper documentation for developers.
- Concerns are raised about the broader implications of such vulnerabilities on the energy grid and the need for open-source solutions to enhance security.
- There is a call for companies to implement bug bounty programs to incentivize responsible disclosure of security issues.
That would be a MAJOR selling point for me, too! Especially because most of the companies that do this for residential are getting a huge portion of the profits using YOUR batteries, rather than getting that profit yourself. Unfortunately, where I live, that is mostly because energy utilities are hostile to anyone except large middlemen installers and their VPPs. It would be simple for them to also allow individuals to sign up for dispatch if they were half-competent. I can't find any companies providing battery systems plus solar that are able to be fully local in my area of the USA, either, even if I wanted to try and go "off grid" using massively overbuilt batteries linked to solar.
I disagree. Anyone using a library should have enough knowledge to use it properly, else they shouldn't be writing serious software. The flip side is that the library should be documented clearly enough to prevent a competent professional developer from making that mistake by accident.
I don't have an issue with a library supporting outdated standards since that can be useful for writing (hopefully temporary) code to interface with legacy systems. Again, as long as it's documented properly, and the devs understand the potential ramifications.
This spooks me. I take this to mean either:
- They are still using the compromised key for validation, meaning if you have access to any old token, you can still mutate that, maybe needing to play around with the issuing times
- They built an allowlist of all permitted tokens, and check that list first. In which case, might as well use random session ids instead of JWTs, and at the same point where the allowlist is being checked, mutate the request to inject a JWT that the backend can use.
Also, kind of curious why the switch to RSA4096 instead of elliptic curves, since they are generally faster / smaller.
Just to say that no proprietary devices should be ever allowed to have remote connections, FLOSS must be mandatory from the early stage of a project to allow third party inspect the codebase not starting with a gazillion SLoC, being de facto unable to understand them, instead of starting from the first SLoC following at the project evolutionary speed.
Nowadays it start to be again damn easy to plan any kind of "unexpected logic" in gazillion of devices, potentially at State intelligence level, from cars to energy systems, TLCs active devices, ... not a new thing at all, but easy enough to be dangerous enough to MANDATE FLOSS if those who care of a nation security have at least an idea of the current role of IT in a society and it's enormous mean attack surface.
The energy transition is going to be a fun time for infosec!
https://arstechnica.com/security/2024/08/home-energy-system-...
can someone explain what's meant by this? i presume the private key identified by the author still works, but will stop working after 7 days?
(based on the sample JWT in the first section, the expiry time of the token seems to be 7 days)
I wonder how the old JWTs signed with the 512-bit key still work safely, isn't that 512-bit key cracked??
Related
R1 jailbreakers find security flaw in Rabbit's code
A group of R1 jailbreakers discovered a security flaw in Rabbit's code, exposing hardcoded API keys. Rabbit took action after a month, revoking most compromised keys. The breach complicates Rabbit's recovery from R1 AI gadget issues.
3M iOS and macOS apps were exposed to potent supply-chain attacks
Vulnerabilities in CocoaPods server exposed 3 million apps to supply-chain attacks for a decade. Flaws allowed hackers to inject malicious code, compromising sensitive user data. Developers urged to prioritize security measures.
Give Me the Green Light Part 1: Hacking Traffic Control Systems
The author uncovers a critical vulnerability in a traffic controller's web interface, allowing unauthorized access to manipulate traffic signals. Vendor response was dismissive, leading to community support and plans for a CVE.
Git: The Stupid Password Store
Tyler Cipriani shares his experience with Git, emphasizing secure credential management. He recommends using tools like GerritLab and secure options like `osxkeychain` or `libsecret` for password storage.
512-bit RSA key in home energy system gives control of "virtual power plant"
Ryan Castellucci discovered a vulnerability in GivEnergy's system, allowing access to a 200 MW virtual power plant. GivEnergy fixed the issue within 24 hours, highlighting risks of outdated cryptographic standards.