
Research
Supply Chain Attack on Axios Pulls Malicious Dependency from npm
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.
CipherQR
Advanced tools
End-to-end encrypted QR codes with forward secrecy
CipherQR is a production-grade Python package for generating and scanning encrypted QR codes that only authorized recipients can decrypt. Each QR code uses ephemeral keys for forward secrecy and authenticated encryption to prevent tampering.
# Extract package
unzip CipherQR_FINAL.zip
cd CipherQR_FINAL
# Install core dependencies
pip install -r requirements.txt
# Install CipherQR
python setup.py install
# Optional: Install QR rendering support
pip install qrcode[pil] Pillow
# Verify installation
python examples/simple_test.py
from CipherQR import CipherQRGenerator, CipherQRScanner
from CipherQR.keystore import KeyStore
# Setup
keystore = KeyStore()
private_key, public_key = keystore.get_or_generate_keypair()
# Generate encrypted QR
generator = CipherQRGenerator()
scanner = CipherQRScanner(private_key)
payload = {"message": "Hello, World!", "timestamp": "2025-09-02"}
qr_data = generator.generate(payload, public_key)
# Scan and decrypt
result = scanner.scan(qr_data)
print(f"Decrypted: {result.payload}")
CipherQR automatically detects available AEAD ciphers:
┌─────────┬──────────────────┬─────────┬─────────────┐
│ Version │ Ephemeral PubKey │ Nonce │ Ciphertext │
│ (1 byte)│ (32 bytes) │(12 bytes)│ (variable) │
└─────────┴──────────────────┴─────────┴─────────────┘
# Quick compatibility test
python examples/simple_test.py
# Run full test suite
python -m pytest tests/ -v
# Individual test files
python tests/test_crypto.py
python tests/test_generator_scanner.py
python tests/test_keystore.py
route_payload = {
"route": "/user/profile/123",
"action": "view"
}
qr_data = generator.generate(
payload=route_payload,
recipient_public_key=public_key,
payload_type="route"
)
estimation = generator.estimate_qr_size(payload_size)
print(f"Base64 size: {estimation['base64_chars']} chars")
print(f"Single QR recommended: {estimation['recommended_single_qr']}")
try:
from CipherQR.qr_renderer import QRRenderer, QRStyle
renderer = QRRenderer()
style = QRStyle(module_color="#2563eb")
qr_image = renderer.render(qr_data, style=style)
renderer.save(qr_image, "encrypted_qr.png")
except ImportError:
print("QR rendering not available - install qrcode[pil] Pillow")
Q: Getting "cannot import XChaCha20Poly1305" error?
A: This version uses ChaCha20-Poly1305 or AES-GCM with automatic fallback for compatibility.
Q: QR rendering not working?
A: QR rendering is optional: pip install qrcode[pil] Pillow
Q: Tests failing?
A: Run python examples/simple_test.py to isolate the issue.
MIT License - see LICENSE for details.
✅ This version is compatible with older cryptography libraries and includes graceful fallbacks for all optional features.
FAQs
End-to-end encrypted QR code generator and scanner with forward secrecy
We found that CipherQR 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
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.

Security News
TeamPCP is partnering with ransomware group Vect to turn open source supply chain attacks on tools like Trivy and LiteLLM into large-scale ransomware operations.