Servant
by ucpdh23
Overview
Smart Home Assistant Platform to simplify and automate domestic tasks efficiently, integrating with sensors, actuators, and AI.
Installation
java -jar servantV3-0.0.1-SNAPSHOT-fat.jar -conf conf.jsonEnvironment Variables
- mongodb.uri
- mongodb.database
- ParrotVerticle.token
- ParrotVerticle.witToken
- NetworkVerticle.server
- NetworkVerticle.usr
- NetworkVerticle.pws
- ThermostatVerticle.url
- ThermostatVerticle.token
- LampVerticle.url
- LampVerticle.token
- SensorVerticle.server
- SensorVerticle.usr
- SensorVerticle.pws
- OutletVerticle.host
- OutletVerticle.login
- OutletVerticle.password
- CalendarVerticle.calendar
- CalendarVerticle.secret
- OpenIAVerticle.API_KEY
- Neo4jVerticle.uri
- Neo4jVerticle.username
- Neo4jVerticle.password
- BrainVerticle.model
- BrainVerticle.secret
- BrainVerticle.mcpServerUrl
- BrainVerticle.managerA2AHost
- GithubVerticle.account
- GithubVerticle.repository
- GithubVerticle.projectBuilderAccessToken
- AzureDevOpsVerticle.organization
- AzureDevOpsVerticle.project
- AzureDevOpsVerticle.accessToken_b64
Security Notes
Critical security vulnerabilities identified: 1. Hardcoded API Key: The GraphHopper API key is directly embedded in `RoadUtils.java`, posing a significant risk if exposed. 2. Remote Command Execution: `SSHUtils.runLocalCommand` and `runRemoteCommand` are used across multiple verticles (`HomeVerticle`, `OutletVerticle`, `SensorVerticle`, `ScrumLeaderVerticle`, `GithubVerticle`, `AzureDevOpsVerticle`). While current usage seems restricted to controlled inputs or configuration, this pattern is highly susceptible to command injection if external inputs are not meticulously sanitized. The `process_device_security` method in `HomeVerticle` is triggered by user input via Telegram and influences device security status which could indirectly lead to command execution if not carefully managed. 3. File Download and Processing: `ParrotUtils` downloads files from Telegram. The `onFile` handler in `ParrotVerticle` constructs a `filepath` from user-provided content (`content.split("#")[2]`), which introduces a potential path traversal vulnerability if the `content` is malicious. 4. XML External Entity (XXE) Vulnerability: `RoadUtils.parseXML` processes XML from external sources without explicit configuration for XXE protection, making it vulnerable to such attacks. 5. Sensitive Data in Configuration: While `conf.json` uses placeholders, if actual secrets are stored directly in this file and committed to version control, they become hardcoded secrets (e.g., GitHub and Azure DevOps access tokens in `GithubVerticle` and `AzureDevOpsVerticle`).
Similar Servers
xiaozhi-esp32-server
Provides a robust backend service for the Xiaozhi ESP32 intelligent terminal hardware, enabling AI assistant functionalities such as voice recognition, natural language processing, knowledge base integration, voice cloning, and device control through MQTT, Websocket, and MCP protocols.
xiaozhi-esp32-server-java
Java backend for smart hardware (ESP32) devices, providing powerful backend support, an intuitive management interface, and acting as a voice-controlled intelligent assistant.
gemini-flow
An AI workflow orchestration and execution platform that enables visual programming and integrates with Google's Gemini and Vertex AI services.
ha-mcp
A Model Context Protocol (MCP) server that provides AI agents with comprehensive control and monitoring capabilities for Home Assistant through REST API and WebSocket integration, offering over 20 enhanced tools for smart home management and automation.