Monday, October 26, 2026

Debian 13: patching CVE-2026-109618 php2shell

known CVE-2026-109618

Description: PHP uses longjmp() for out-of-memory (OOM) errors to exit the current context and abort handling of the request. Some contexts may not properly account for this scenario and leave request memory in an uninitialized state before performing an allocation. The subsequent request cleanup procedure may read or branch on this memory. Multiple OOM strategies can consistently trigger this condition and lead to remote code execution (RCE).

Offical debian patch

  • debian 12 php 8.2 -> fix 8.2.35 
  • debian 13 php 8.4 -> fix 8.4.27

source: https://security-tracker.debian.org/tracker/CVE-2026-109618

The steps are

  1. check your php version# php -v
    PHP 8.4.26 (cli) (built: Sep 24 2026 17:16:18) (NTS)
    Copyright (c) The PHP Group
    Built by Debian
    Zend Engine v4.4.26, Copyright (c) Zend Technologies
        with Zend OPcache v8.4.26, Copyright (c), by Zend Technologies
  2. perform upgrade if patch require
    # apt update && apt upgrade -y
    ...
  3. check php version after upgradea
    < # php -v PHP 8.4.27 (cli) (built: Oct 21 2026 07:53:46) (NTS) Copyright (c) The PHP Group Built by Debian Zend Engine v4.4.27, Copyright (c) Zend Technologies with Zend OPcache v8.4.27, Copyright (c), by Zend Technologies
  4. Restart your apache 
    # systemctl restart apache2
  5. Restart PHP-FPM if you install it
    # systemctl restart php8.4-fpm

Warning: for server running Debian 11 24/7 and lower, please upgrade to Debian 12 to get patch! 

Saturday, October 24, 2026

Windows: fix boot manager after downgrade windows 11 to windows 10 on HP 15-AF109AX

Symptom: windows boot show 2 option, windows 10 and windows recovery

Assume: partition windows 11 has been replace with windows 10. 

i used these steps to downgrade win 11 to win 10 (fresh install)

  1. use gparted to delete drive c windows 11, resize esp partition from 100mb to 300mb (dual boot Debian), 
  2. use original iso dvd to install Windows 10.
  3. download and install wifi driver sp78044.exe from hp web. i download from existing debian inside this laptop, mount ntfs, and copy the file to windows directory. here is the url https://ftp.hp.com/pub/softpaq/sp78001-78500/sp78044.exe.

Find windows recovery / old windows i.e. windows 11

C:\Windows\system32>bcdedit /enum

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume2
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
default                 {current}
resumeobject            {b9a24d5c-cf4c-11f1-88b8-fa1143ace85b}
displayorder            {current}
                        {7c1da856-b085-11ec-bcd2-a47027794018}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.efi
description             Windows 10
locale                  en-US
inherit                 {bootloadersettings}
recoverysequence        {b9a24d5e-cf4c-11f1-88b8-fa1143ace85b}
displaymessageoverride  Recovery
recoveryenabled         Yes
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \Windows
resumeobject            {b9a24d5c-cf4c-11f1-88b8-fa1143ace85b}
nx                      OptIn
bootmenupolicy          Standard

Windows Boot Loader
-------------------
identifier              {7c1da856-b085-11ec-bcd2-a47027794018}
device                  unknown <-----------------------------------
path                    \WINDOWS\system32\winload.efi
description             Windows 10
locale                  en-US
inherit                 {bootloadersettings}
recoverysequence        {7c1da857-b085-11ec-bcd2-a47027794018}
displaymessageoverride  Recovery
recoveryenabled         Yes
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
osdevice                unknown
systemroot              \WINDOWS
resumeobject            {7c1da855-b085-11ec-bcd2-a47027794018}
nx                      OptIn
bootmenupolicy          Standard

Remove  windows recovery / old windows 

C:\Windows\system32>bcdedit /delete {7c1da856-b085-11ec-bcd2-a47027794018}
The operation completed successfully.

Restart your laptop to test it.

We dont want windows 10 upgrading to windows 11

  1. open regedit (run->regedit)
  2. go to HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows 
  3. create a new key WindowsUpdate if not exist
  4. at right side create these values:
    • ProductVersion -> String Value -> Windows 10
    • TargetReleaseVersionInfo -> String Value -> 22H2
    • TargetReleaseVersion -> DWORD (32-bit) -> 1

 or copy this to notepad and save as no_win11.reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
"TargetReleaseVersion"=dword:00000001
"ProductVersion"="Windows 10"
"TargetReleaseVersionInfo"="22H2"

then right click to file and merge 

Tuesday, October 20, 2026

Debian 13: in dual boot, grub update can not fix debian boot

Go into windows and open cmd with administrator 

C:\Windows\System32>bcdedit /enum all

Firmware Boot Manager
---------------------
identifier              {fwbootmgr}
displayorder            {bootmgr}
                        {e074b9af-824b-11f1-806d-806e6f6e6963}
                        {3923b543-cc0a-11f1-9907-806e6f6e6963}
timeout                 1

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume2
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
locale                  id-ID
inherit                 {globalsettings}
default                 {current}
resumeobject            {d5b4c214-c5eb-11f0-b9cc-bfd3f4d1aeed}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Firmware Application (101fffff)
-------------------------------
identifier              {3923b543-cc0a-11f1-9907-806e6f6e6963}
device                  partition=\Device\HarddiskVolume2
path                    \EFI\debian\shimx64.efi
description             debian

Firmware Application (101fffff)
-------------------------------
identifier              {e074b9af-824b-11f1-806d-806e6f6e6963}
device                  partition=\Device\HarddiskVolume2
path                    \EFI\RECOVERY\BOOT\BOOTMGFW.EFI
description             Windows Boot Manager
....

run

C:\Windows\System32>bcdedit /set {fwbootmgr} displayorder {3923b543-cc0a-11f1-9907-806e6f6e6963} {bootmgr} {e074b9af-824b-11f1-806d-806e6f6e6963}
The operation completed successfully. 

confirm boot order

C:\Windows\System32>bcdedit /enum all

Firmware Boot Manager
---------------------
identifier              {fwbootmgr}
displayorder            {3923b543-cc0a-11f1-9907-806e6f6e6963}
                        {bootmgr}
                        {e074b9af-824b-11f1-806d-806e6f6e6963}
timeout                 1

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume2
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
locale                  id-ID
inherit                 {globalsettings}
default                 {current}
resumeobject            {d5b4c214-c5eb-11f0-b9cc-bfd3f4d1aeed}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Firmware Application (101fffff)
-------------------------------
identifier              {3923b543-cc0a-11f1-9907-806e6f6e6963}
device                  partition=\Device\HarddiskVolume2
path                    \EFI\debian\shimx64.efi
description             debian

Firmware Application (101fffff)
-------------------------------
identifier              {e074b9af-824b-11f1-806d-806e6f6e6963}
device                  partition=\Device\HarddiskVolume2
path                    \EFI\RECOVERY\BOOT\BOOTMGFW.EFI
description             Windows Boot Manager
... 

Restart your computer.

Last option, change boot order from Bios (depends on vendor) 

Bios -> Boot NVME Drive BBS Priorities  

Monday, October 19, 2026

windows 11: find esp partition free space

use cmd or powershell and use disk part to mount esp partition

C:\Windows\System32>diskpart

Microsoft DiskPart version 10.0.26100.1150

find which is esp partition

DISKPART> list volume

  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
  Volume 0     C   Windows_Bon  NTFS   Partition    137 GB  Healthy    Boot
  Volume 1     D   Data_Boni    NTFS   Partition     20 GB  Healthy
  Volume 2         SYSTEM       FAT32  Partition    100 MB  Healthy    System
  Volume 3         Recovery     NTFS   Partition   1001 MB  Healthy    Hidden

select volume, it is volume 2 

DISKPART> select volume 2

Volume 2 is the selected volume. 

assign drive letter for volume 2

DISKPART> assign letter=z

DiskPart successfully assigned the drive letter or mount point.

exit, and run command dir z: and at the it will show free space ",,,,,  bytes free"

Don't forget to remove drive letter, replace assign letter=z to  remove letter=z

 

Wednesday, October 14, 2026

Debian 13: jakarta tomcat create servlet using Netbeans

This steps use Netbeans version 31.

to create tomcat apache project in netbeans follow these steps:

  1. open your netbeans
  2. File -> New Project -> java with Maven -> Web Application
  3. fill "Project Name" e.g. My Servlet
  4. in New Web Application -> Server click Add
  5. select Apache Tomcat or TomEE
  6. select your jakarta tomcat directory
  7. fill username and password from tomcat-users.xml file which is has rule rolename="manager-gui"
  8. Finish will return to New Web Application, then Finish 

to create a new servlet

  1. From your project -> Source Packages -> <package_name>. MyServlet, right click and create New -> Servlet
  2. Class Name: HelloWorld, then next
  3. Servlet Name: My Servlet
  4. URL Pattern: /HelloWorkd
  5. This will create default response
  6. run from your netbeans, and your HelloWorld will appear in browser with url http://localhost:8080/MyServlet/HelloWorld

now, we add mariadb into our project, edit Project Files -> pom.xml

     <dependencies>
        ....
        <!-- MariaDB JDBC driver -->
        <dependency>
            <groupId>org.mariadb.jdbc</groupId>
            <artifactId>mariadb-java-client</artifactId>
            <version>3.5.10</version>
        </dependency>
    </dependencies>

now edit HelloWorld.java

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        try (PrintWriter out = response.getWriter()) {
            /* TODO output your page here. You may use following sample code. */
            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet HelloWorld </title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet HelloWorld at " + request.getContextPath() + " 0261015</h1>");
            
            // connect to db
            out.println("<p>connecting to mariadb</p>");
            
            try {
                Class.forName("org.mariadb.jdbc.Driver");
                out.println("<p>MariaDB JDBC driver FOUND</p>");
                
                try (java.sql.Connection conn =
                        java.sql.DriverManager.getConnection(
                            "jdbc:mariadb://localhost:3306/<db_name>",
                            "<db_user>",
                            "<db_password>")) {

                    out.println("<p>MariaDB CONNECTION SUCCESSFUL</p>");
                    out.println("<p>Database: "
                            + conn.getCatalog() + "</p>");
                } catch (SQLException ex) {
                    out.println("<p>Error"+ex.getMessage()+"</p>");
                }
                
            } catch (ClassNotFoundException e) {
                out.println("<p>MariaDB JDBC driver NOT FOUND</p>");
            }
            
            out.println("</body>");
            out.println("</html>");
        }
    }

run your servlet.

if no error found, you may start writing your application.  

hint: use any ai to find error in your code, copy paste code and error. but Do Not rely on it, use your instinct to fix your code, ai may made mistake.