
Research
/Security News
Critical Vulnerability in NestJS Devtools: Localhost RCE via Sandbox Escape
A flawed sandbox in @nestjs/devtools-integration lets attackers run code on your machine via CSRF, leading to full Remote Code Execution (RCE).
A small python library for discovery and interacting with Melnor, Eden, etc Bluetooth water timers.
Melnor Bluetooth is a reverse engineered implementation of the Bluetooth protocol for all "smart" bluetooth-enabled watering valves under the Melnor, EcoAquastar, Eden, and other brands.
The library should run on MacOS, Linux, or Windows. It's primarily developed on MacOS and other platforms likely have bugs. PRs and tests are welcome to improve quality across all platforms.
A simple CLI has been provided for basic debugging purposes. It's not intended for any real use and isn't suitable for running a valve in the real world.
This project uses poetry for dependency management and building. Running this project locally is as simple as the following steps:
poetry install
poetry run cli.py
The python API has been designed to be as easy to use as possible. A few examples are provided below:
import asyncio
from bleak import BleakScanner # type: ignore - bleak has bad export types
from melnor_bluetooth.device import Device
ADDRESS = "00:00:00:00:00" # fill with your device mac address
async def main():
ble_device = await BleakScanner.find_device_by_address(ADDRESS)
if ble_device is not None:
device = Device(ble_device)
await device.connect()
await device.fetch_state()
print(device.battery_level)
await device.disconnect()
asyncio.run(main())
import asyncio
from bleak import BleakScanner # type: ignore - bleak has bad export types
from melnor_bluetooth.device import Device
address = "00:00:00:00:00" # fill with your device mac address
async def main():
ble_device = await BleakScanner.find_device_by_address(ADDRESS)
if ble_device is not None:
device = Device(ble_device)
await device.connect()
await device.fetch_state()
device.zone1.is_watering = True
await device.push_state()
await device.disconnect()
asyncio.run(main())
FAQs
A small python library for discovery and interacting with Melnor, Eden, etc Bluetooth water timers.
We found that melnor-bluetooth demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
A flawed sandbox in @nestjs/devtools-integration lets attackers run code on your machine via CSRF, leading to full Remote Code Execution (RCE).
Product
Customize license detection with Socket’s new license overlays: gain control, reduce noise, and handle edge cases with precision.
Product
Socket now supports Rust and Cargo, offering package search for all users and experimental SBOM generation for enterprise projects.