Skip to content

Security: yyyyymmmmm/InkRoot

Security

SECURITY.md

Security Policy

πŸ”’ Reporting a Vulnerability

The InkRoot team takes security seriously. We appreciate your efforts to responsibly disclose your findings.

How to Report

Please DO NOT report security vulnerabilities through public GitHub issues.

Instead, please report security vulnerabilities by emailing:

πŸ“§ inkroot2025@gmail.com

Include the following information in your report:

  • Type of issue (e.g., buffer overflow, SQL injection, cross-site scripting, etc.)
  • Full paths of source file(s) related to the manifestation of the issue
  • The location of the affected source code (tag/branch/commit or direct URL)
  • Any special configuration required to reproduce the issue
  • Step-by-step instructions to reproduce the issue
  • Proof-of-concept or exploit code (if possible)
  • Impact of the issue, including how an attacker might exploit it

What to Expect

  • Initial Response: You should receive a response within 48 hours
  • Status Updates: We will keep you informed about the progress
  • Fix Timeline: We aim to fix critical vulnerabilities within 7 days
  • Credit: We will publicly credit you for responsibly disclosing the issue (unless you prefer to remain anonymous)

πŸ›‘οΈ Supported Versions

We release security updates for the following versions:

Version Supported
1.0.x βœ… Yes
< 1.0 ❌ No

πŸ” Security Considerations

Data Storage

Local Mode

  • All data is stored locally on your device
  • No data is sent to any server
  • Data is stored in SQLite database
  • Sensitive tokens are stored in secure storage (iOS Keychain / Android Keystore)

Server Sync Mode

  • Data is synced to the official server or the Memos server you configure
  • Connections use HTTPS encryption (recommended)
  • Authentication tokens are stored securely
  • Data in self-hosted Memos, WebDAV, AI, or other third-party services is processed by the service you choose

Privacy

What We Collect

  • Official server account profile and user content only when you choose to sign in to the official server
  • Feedback content and diagnostic context only when you submit feedback or enable related diagnostics
  • Android analytics or crash diagnostics only when enabled by the build and app settings

What We DON'T Collect

  • ❌ We do not sell personal information
  • ❌ We do not read private notes for advertising profiles
  • ❌ We do not access self-hosted Memos, WebDAV, or AI service data unless you configure and use those features in the app

For more details, see our Privacy Policy

Third-Party Services

InkRoot uses the following third-party services:

  1. Umeng Analytics (Android only when enabled)

  2. Sentry (Android only)

  3. DeepSeek AI (Optional)

    • Purpose: AI-powered note enhancement
    • Only used when explicitly enabled by user
    • Only sends note content when user requests AI features
    • Privacy Policy: https://www.deepseek.com/privacy

Permissions

iOS Permissions

  • Microphone (NSMicrophoneUsageDescription) - For voice-to-text feature
  • Photos (NSPhotoLibraryUsageDescription) - For image uploads and saving
  • Camera (NSCameraUsageDescription) - For taking photos to attach to notes
  • Notifications - For reminder notifications

Android Permissions

  • INTERNET - For server sync (only used in sync mode)
  • RECORD_AUDIO - For voice-to-text feature
  • READ_EXTERNAL_STORAGE / WRITE_EXTERNAL_STORAGE - For image management
  • CAMERA - For taking photos
  • POST_NOTIFICATIONS - For reminder notifications
  • SCHEDULE_EXACT_ALARM - For reminder scheduling

Best Practices for Users

  1. Use HTTPS - Always use HTTPS for server connections, never HTTP in production
  2. Strong Passwords - Use strong, unique passwords for your Memos account
  3. Keep Updated - Always use the latest version of InkRoot
  4. Secure Your Device - Use device lock (PIN/password/biometrics)
  5. Review Permissions - Only grant permissions you need
  6. Backup Data - Regularly export your notes for backup

Secure Development Practices

We follow these practices to ensure InkRoot's security:

  • βœ… Regular dependency updates
  • βœ… Code review for all changes
  • βœ… Static code analysis (dart tool/inkroot.dart verify)
  • βœ… GitHub Actions secret scanning
  • βœ… Secure storage for sensitive data
  • βœ… Input validation and sanitization
  • βœ… HTTPS for all network communications
  • βœ… No hardcoded secrets or credentials
  • βœ… Minimal permission requests

Credential Handling

Never commit or paste production credentials into issues, pull requests, chat, or documentation examples. This includes:

  • GitHub personal access tokens
  • Android keystores and android/key.properties
  • Apple certificates, provisioning profiles, and export options with secrets
  • API keys, service account JSON files, and private keys

If a token or signing credential is exposed, revoke it immediately, rotate the credential, and update GitHub Secrets or local signing files with the new value.

Android release signing is configured locally through ignored files:

android/key.properties
android/inkroot-new-release.keystore

CI release signing uses GitHub Secrets as documented in docs/MAINTENANCE.md.


πŸ“ Known Security Considerations

Current Limitations

  1. Local Database Encryption

    • The local SQLite database is NOT encrypted by default
    • If device encryption is enabled, the database is protected by OS-level encryption
    • We're considering adding app-level encryption in future versions
  2. Markdown Rendering

    • User-generated Markdown is rendered without sandboxing
    • Avoid copying untrusted Markdown content
  3. Image Handling

    • Images are stored unencrypted
    • Large images may consume significant storage

Planned Improvements

  • πŸ”„ Optional database encryption
  • πŸ”„ Biometric authentication for app access
  • πŸ”„ Note-level encryption
  • πŸ”„ Enhanced security audit logging

πŸ”— Resources


πŸ™ Thank You

We appreciate the security research community and thank all researchers who responsibly disclose vulnerabilities to us.

Hall of Fame

(We will list security researchers who have helped improve InkRoot's security here)


πŸ“§ Contact

For security-related inquiries:

For general inquiries:


Last updated: 2025-10-25

There aren't any published security advisories