Skip to content

Security: Ghostrayu/xahpayroll

Security

SECURITY.md

SECURITY POLICY

SUPPORTED VERSIONS

WE ACTIVELY SUPPORT THE FOLLOWING VERSIONS OF XAH PAYROLL WITH SECURITY UPDATES:

VERSION SUPPORTED END OF SUPPORT
1.0.X TBD

REPORTING A VULNERABILITY

DO NOT OPEN PUBLIC GITHUB ISSUES FOR SECURITY VULNERABILITIES

WE TAKE SECURITY SERIOUSLY. IF YOU DISCOVER A SECURITY VULNERABILITY, PLEASE FOLLOW THESE STEPS:

1. PRIVATE DISCLOSURE

EMAIL YOUR FINDINGS TO: admin@xahpayroll.xyz (or create a private security advisory on GitHub)

2. PROVIDE DETAILS

INCLUDE THE FOLLOWING INFORMATION IN YOUR REPORT:

  • DESCRIPTION: CLEAR DESCRIPTION OF THE VULNERABILITY
  • IMPACT: POTENTIAL IMPACT AND SEVERITY ASSESSMENT
  • REPRODUCTION STEPS: STEP-BY-STEP INSTRUCTIONS TO REPRODUCE
  • AFFECTED VERSIONS: WHICH VERSIONS ARE VULNERABLE
  • PROPOSED FIX: IF YOU HAVE A SUGGESTED SOLUTION (OPTIONAL)
  • CONTACT INFO: HOW WE CAN REACH YOU FOR FOLLOW-UP

3. RESPONSE TIMELINE

  • ACKNOWLEDGMENT: WITHIN 48 HOURS OF REPORT SUBMISSION
  • INITIAL ASSESSMENT: WITHIN 7 DAYS
  • FIXES & PATCHES: WITHIN 30-90 DAYS (DEPENDING ON SEVERITY)
  • PUBLIC DISCLOSURE: COORDINATED WITH REPORTER AFTER FIX IS DEPLOYED

4. RECOGNITION

WE BELIEVE IN RECOGNIZING SECURITY RESEARCHERS:

  • SECURITY ACKNOWLEDGMENTS: LISTED IN CHANGELOG AND SECURITY ADVISORIES
  • CVE CREDIT: PROPER ATTRIBUTION FOR CVE ASSIGNMENTS
  • COORDINATED DISCLOSURE: WE WORK WITH YOU ON PUBLIC DISCLOSURE TIMING

SECURITY BEST PRACTICES

FOR DEVELOPERS

1. ENVIRONMENT VARIABLES

NEVER COMMIT CREDENTIALS OR SECRETS TO GIT

# ✅ CORRECT: USE ENVIRONMENT VARIABLES
DB_PASSWORD=your_secure_password_here
JWT_SECRET=your_random_jwt_secret

# ❌ WRONG: HARDCODED IN CODE
const dbPassword = 'mypassword123'; // NEVER DO THIS

GENERATE STRONG SECRETS:

# GENERATE SECURE JWT SECRET (LINUX/MAC)
openssl rand -base64 64

# GENERATE SECURE DATABASE PASSWORD
openssl rand -base64 32

2. DATABASE SECURITY

CONNECTION SECURITY:

  • USE SSL/TLS FOR DATABASE CONNECTIONS IN PRODUCTION
  • ROTATE DATABASE PASSWORDS REGULARLY (QUARTERLY)
  • USE PRINCIPLE OF LEAST PRIVILEGE FOR DATABASE USERS
  • NEVER EXPOSE DATABASE PORT PUBLICLY

BACKUP SECURITY:

  • ENCRYPT DATABASE BACKUPS AT REST
  • NEVER COMMIT .sql, .dump, OR .backup FILES TO GIT
  • STORE BACKUPS IN SECURE, ACCESS-CONTROLLED LOCATIONS

RECOMMENDED DATABASE USER PERMISSIONS:

-- CREATE LIMITED-PRIVILEGE USER (EXAMPLE)
CREATE USER xahpayroll_user WITH PASSWORD 'SECURE_PASSWORD_HERE';
GRANT CONNECT ON DATABASE xahpayroll TO xahpayroll_user;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO xahpayroll_user;
-- AVOID GRANTING SUPERUSER OR CREATE DATABASE PRIVILEGES

3. XRPL WALLET SECURITY

PRIVATE KEY MANAGEMENT:

  • NEVER COMMIT XRPL WALLET SECRETS OR PRIVATE KEYS
  • USE HARDWARE WALLETS OR SECURE KEY MANAGEMENT FOR PRODUCTION
  • ROTATE TEST WALLET KEYS REGULARLY
  • IMPLEMENT MULTI-SIGNATURE WALLETS FOR HIGH-VALUE ESCROWS

TESTNET VS MAINNET:

# ✅ DEVELOPMENT: USE TESTNET
XRPL_NETWORK=testnet
XRPL_WEBSOCKET=wss://s.altnet.rippletest.net:51233

# ⚠️ PRODUCTION: USE MAINNET WITH EXTREME CAUTION
XRPL_NETWORK=mainnet
XRPL_WEBSOCKET=wss://xahau.network

PAYMENT CHANNEL SECURITY:

  • SET APPROPRIATE CANCEL_AFTER TIMEOUTS (RECOMMENDED: 24-72 HOURS)
  • VERIFY CHANNEL SIGNATURES CRYPTOGRAPHICALLY BEFORE CLAIMS
  • IMPLEMENT RATE LIMITING FOR PAYMENT CHANNEL OPERATIONS
  • MONITOR CHANNELS FOR SUSPICIOUS ACTIVITY

4. JWT AUTHENTICATION

TOKEN SECURITY:

  • USE STRONG, RANDOM JWT SECRETS (MINIMUM 256 BITS)
  • SET SHORT EXPIRATION TIMES (RECOMMENDED: 7 DAYS MAX)
  • ROTATE JWT SECRETS AFTER SUSPECTED BREACHES
  • NEVER LOG OR DISPLAY FULL JWT TOKENS

SESSION MANAGEMENT:

// ✅ SECURE JWT CONFIGURATION
const jwtConfig = {
  secret: process.env.JWT_SECRET, // RANDOM 256-BIT SECRET
  expiresIn: '7d',                // SHORT EXPIRATION
  algorithm: 'HS256'              // SECURE ALGORITHM
};

5. API SECURITY

RATE LIMITING:

  • CURRENT DEFAULT: 100 REQUESTS PER 15 MINUTES
  • ADJUST BASED ON YOUR INFRASTRUCTURE CAPACITY
  • IMPLEMENT ENDPOINT-SPECIFIC RATE LIMITS FOR SENSITIVE OPERATIONS

CORS CONFIGURATION:

// ✅ PRODUCTION: STRICT ORIGINS
CORS_ORIGINS=https://yourproductiondomain.com

// ⚠️ DEVELOPMENT: LOCALHOST ONLY
CORS_ORIGINS=http://localhost:3000,http://localhost:5173

INPUT VALIDATION:

  • VALIDATE ALL USER INPUTS ON BACKEND (NEVER TRUST FRONTEND)
  • USE JOI OR SIMILAR VALIDATION LIBRARIES
  • SANITIZE INPUTS TO PREVENT SQL INJECTION AND XSS

FOR SYSTEM ADMINISTRATORS

1. PRODUCTION DEPLOYMENT

INFRASTRUCTURE SECURITY:

  • USE HTTPS/TLS FOR ALL WEB TRAFFIC (MINIMUM TLS 1.2)
  • ENABLE FIREWALL RULES TO RESTRICT DATABASE ACCESS
  • USE REVERSE PROXY (NGINX/TRAEFIK) FOR BACKEND API
  • IMPLEMENT INTRUSION DETECTION SYSTEMS (IDS)

ENVIRONMENT HARDENING:

# DISABLE DEBUG MODE IN PRODUCTION
DEBUG=false
NODE_ENV=production

# ENABLE MINIMAL LOGGING (AVOID SENSITIVE DATA)
LOG_LEVEL=warn
ENABLE_REQUEST_LOGGING=false

2. MONITORING & ALERTING

SECURITY MONITORING:

  • LOG FAILED AUTHENTICATION ATTEMPTS
  • MONITOR PAYMENT CHANNEL ANOMALIES (LARGE AMOUNTS, RAPID CLAIMS)
  • SET UP ALERTS FOR SUSPICIOUS DATABASE QUERIES
  • TRACK API RATE LIMIT VIOLATIONS

RECOMMENDED TOOLS:

  • LOG AGGREGATION: ELK STACK, SPLUNK, OR DATADOG
  • UPTIME MONITORING: PINGDOM, UPTIMEROBOT
  • SECURITY SCANNING: SNYK, DEPENDABOT, OSSINDEX

3. INCIDENT RESPONSE

BREACH RESPONSE PLAN:

  1. IMMEDIATE: DISABLE COMPROMISED CREDENTIALS
  2. ISOLATE: DISCONNECT AFFECTED SYSTEMS FROM NETWORK
  3. INVESTIGATE: ANALYZE LOGS AND IDENTIFY ATTACK VECTOR
  4. REMEDIATE: PATCH VULNERABILITIES AND ROTATE ALL SECRETS
  5. NOTIFY: INFORM AFFECTED USERS AND STAKEHOLDERS
  6. REVIEW: CONDUCT POST-MORTEM AND UPDATE SECURITY POLICIES

FOR END USERS

1. WALLET SECURITY

PROTECT YOUR PRIVATE KEYS:

  • NEVER SHARE YOUR XAMAN WALLET SECRET OR SEED PHRASE
  • VERIFY TRANSACTION DETAILS BEFORE SIGNING IN XAMAN APP
  • USE XAMAN BIOMETRIC AUTHENTICATION WHERE AVAILABLE
  • ENABLE XAMAN PIN CODE PROTECTION

RECOGNIZE PHISHING:

  • XAHPAYROLL WILL NEVER ASK FOR YOUR PRIVATE KEYS
  • VERIFY URLs MATCH OFFICIAL DOMAINS
  • BE CAUTIOUS OF UNEXPECTED PAYMENT REQUESTS

2. ACCOUNT SECURITY

STRONG AUTHENTICATION:

  • USE UNIQUE WALLET ADDRESSES FOR DIFFERENT ROLES (EMPLOYEE VS EMPLOYER)
  • MONITOR YOUR PAYMENT CHANNELS REGULARLY
  • REPORT SUSPICIOUS ACTIVITY IMMEDIATELY

KNOWN SECURITY CONSIDERATIONS

PAYMENT CHANNEL CLOSURE

SETTLEDELAY PROTECTION:

  • WORKERS HAVE A GRACE PERIOD (TYPICALLY 24+ HOURS) DURING CHANNEL CLOSURE
  • NGOS CANNOT FINALIZE CLOSURE UNTIL SETTLEDELAY EXPIRES
  • WORKERS SHOULD FINALIZE EXPIRED CHANNELS THEMSELVES TO PROTECT BALANCES

RECOMMENDATION:

  • WORKERS: MONITOR DASHBOARD FOR EXPIRED CHANNELS (RED PULSING BADGE)
  • WORKERS: CLICK "FINALIZE CLOSURE" PROMPTLY TO CLAIM ACCUMULATED BALANCE
  • NGOS: HONOR SETTLEDELAY PERIODS AND COMMUNICATE CLOSURES TRANSPARENTLY

ACCOUNT ACTIVATION REQUIREMENT

XAHAU ACTIVATION:

  • WORKER WALLETS MUST BE ACTIVATED ON XAHAU BEFORE PAYMENT CHANNEL CREATION
  • MINIMUM RESERVE: 10-20 XAH TO ACTIVATE ACCOUNT
  • ERROR: TECNO_DST INDICATES DESTINATION WALLET NOT ACTIVATED

COMPLIANCE & REGULATIONS

DATA PRIVACY

GDPR COMPLIANCE:

  • USER DATA DELETION AVAILABLE VIA PROFILE SETTINGS
  • 48-HOUR GRACE PERIOD FOR PROFILE DELETION REVERSAL
  • PERMANENT DATA REMOVAL AFTER GRACE PERIOD EXPIRES

DATA RETENTION:

  • ACTIVE SESSION DATA: RETAINED WHILE ACCOUNT ACTIVE
  • DELETED PROFILES: PERMANENT REMOVAL AFTER 48 HOURS
  • PAYMENT CHANNEL HISTORY: RETAINED FOR AUDIT PURPOSES (90 DAYS)

FINANCIAL REGULATIONS

XRPL COMPLIANCE:

  • XAH PAYROLL OPERATES ON XAHAU (XRPL SIDECHAIN)
  • NO CUSTODIAL WALLET SERVICES (USERS CONTROL PRIVATE KEYS)
  • CONSULT LOCAL REGULATIONS FOR CRYPTOCURRENCY PAYMENT COMPLIANCE

SECURITY AUDIT HISTORY

DATE AUDITOR SCOPE STATUS
2026-01-03 INTERNAL TEAM CREDENTIAL AUDIT COMPLETED
TBD EXTERNAL AUDIT (TBD) FULL SECURITY REVIEW PLANNED

SECURITY CONTACTS

GENERAL SECURITY INQUIRIES: admin@xahpayroll.xyz VULNERABILITY REPORTS: PRIVATE SECURITY ADVISORY ON GITHUB PROJECT MAINTAINERS: GOOD MONEY COLLECTIVE


REFERENCES


LAST UPDATED: 2026-01-03 VERSION: 1.0

There aren’t any published security advisories